C# 删除段落中字符之前的字符串



我正在尝试删除冒号:之前的字符串。我需要冒号后的所有字符串。

输入:

"Country: USA <br> 
Address Line1: Texas  <br>  
Address Line2:  Austin <br>"

输出:

USA <br>
Texas  <br> 
Austin <br>

法典:

string address = "Country: USA <br> Address Line1: Texas <br> Address Line2: Austin <br>";
address = address.Substring(address.IndexOf(':') + 1);// This removes only one string before colon ,rest remains same
string[] output = address.Split(':');// This also includes the left part before colon

注意:这不是一个重复的问题,因为其他问题基于单个字符,但在这里我们处理字符串中多次出现的冒号和<br>

任何帮助都会很棒。

只是为了给出一个非正则表达式的替代方案,你可以按<br>拆分(你的意思是<br/>(,然后做你的子字符串方法:

string[] output = 
address
.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries)
.Select(row => row.Substring(row.IndexOf(':') + 1).Trim() + " <br>")
.ToArray();

或者你可以做你的分号拆分方法:

string[] output = 
address
.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries)
.Select(row => row.Split(':').Last().Trim() + " <br>")
.ToArray();

如果你喜欢 linq 并且遵循"一行教会",这应该可以工作:

address
.Split(new string[] { ":", "<br>" }, StringSplitOptions.None)
.Trim()
.Where((ignore,index) => (index % 2) == 0)
.Select((item) => item+"<br>")
.ToList();

最新更新