![](/img/trans.png)
[英]Replace multiple occurrencies of a substring with a single occurrence of it
[英]How to replace a continuous occurrence of a substring with a single substring?
我在android froom中解析了一個html字符串,該字符串是可跨越的字符串。 :-
<p dir="ltr"><b><b><b><b><b>qwert</b></b></b></b></b><b><b><b><b><b><b>y</b></b></b></b></b></b></p>
如您所見,標簽多次出現。
現在,我完成了hit和trial,用戶方法如replaceAll()
,但是它們替換了所有出現的情況。
我想要的是,當我傳遞一個子字符串來查找時,說“ <b>
”,然后它應該替換並說上述字符串中的前五個連續的加粗標簽,並用單個“ <b>
”標簽。
有什么建議么
所需結果:- <p dir="ltr"><b>qwert</b><b>y</b></p>
如果我正確理解了您的問題,則可以嘗試使用此正則表達式:
(<[^>]+>)\\1+
並替換為:
\\1
在代碼中...
String test = "<p dir=\"ltr\"><b><b><b><b><b>qwert</b></b></b></b></b><b><b><b><b><b><b>y</b></b></b></b></b></b></p>";
String out = test.replaceAll("(<[^>]+>)\\1+", "$1");
輸出:
<p dir="ltr"><b>qwert</b><b>y</b></p>
(<[^>]+>)
匹配並捕獲到組1中,這是它找到的第一個標簽。
正則表達式中的\\\\1
表示第一個捕獲的標簽。 +
表示無限重復(嗯,這個限制是一個很大的數字,我認為您不必擔心)。
替換$1
然后也引用第一個捕獲的標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.