[英]Remove consecutive <br> from string using regex c#
我有以下字符串正則表達式
"choose to still go on the trip. <br><br>\r\nNote that when booking"
用正則表達式轉換后我需要用一個<br>
替換<br>
標簽,所以字符串就是這樣的
"choose to still go on the trip. <br>Note that when booking"
這可以使用HTML Agility Pack (開源項目http://html-agility-pack.net )以另一種(更安全)的方式完成。
它考慮到各種符號<br>
, <br/>
, <br />
沒有你不必擔心它 。 這意味着您可以專注於實際任務:替換重復項。
請參閱使用HTML Agility Pack刪除重復元素鏈 ,它解釋了如何替換重復項的方法。
如果您需要考慮標記之間有空格的情況,請嘗試以下正則表達式:
myInputStr = Regex.Replace(myInputStr,
@"([\b\s]*<[\b\s]*[bB][rR][\s]*/?[\b\s]*>){2,}",
"<br>", RegexOptions.Multiline);
無論標簽的形成如何(間距,套管,自閉合等),此正則表達式都將用單個實例替換2個或更多個<br>
標簽實例。
編輯:如果你不知道有多少<br>
你有,你可以這樣做:
<br>
拆分字符串並刪除空條目。 <br>
加入字符串 這是代碼:
string yourString = "choose to still go on the trip. <br><br>\r\nNote that when booking";
var temp =
yourString.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries)
.Where(i => i.Replace(" ", string.Empty).Length > 0);
string result = string.Join("<br>", temp);
像馬丁伊登一樣:
while (text.Contains("<br><br>"))
{
text = text.Replace("<br><br>", "<br>");
}
要么
string newString = oldString.Replace("<br><br><br>", "<br>");
newString = newString.Replace("<br><br>", "<br>");
通過增加<br>
來做多個這樣的行
Regex.Replace(input, @"(<br\s*/{0,1}>\s*(</\s*br>)*){2,}", "<br>",
RegexOptions.CultureInvariant |
RegexOptions.IgnoreCase |
RegexOptions.Multiline);
用一個<br>
替換任何兩個或更多個<br>
或<br/>
或者<br></br>
的出現。
這需要考慮空白。 <br >
<br > </ br>
<br />
<br > </ br>
。
如果您事先刪除了不需要的“\\ r \\ n”,則可以省略RegexOptions.Multiline
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.