[英]how to replace all occurrence of string between two symbols?
我正在使用Java的RegEx,這就是我要堅持的地方。
我有一個簡單的字符串
<html><body><span style=3D"font-family:Verdana; color:#000; font-size:10pt;=
"><div><font face=3D"verdana, geneva" size=3D"2">http://72.55.146.142:8880/=
order003.png.zip,120</body></html>
我需要做的就是編寫javascript,它可以將所有字符串替換為“ <”和“>”符號。
我寫了這樣的東西-
var strReplaceAll = Body;
var intIndexOfMatch = strReplaceAll.indexOf( "<" );
while (intIndexOfMatch != -1){
strReplaceAll = strReplaceAll.replace(/<.*>/,'')
intIndexOfMatch = strReplaceAll.indexOf( "<" );
}
但是問題是身體是否包含-
test<abc>test2<adg>
它會給我-
test
僅或如果主體包含-
<html>test<abc>test2<adg>
它不會給我任何東西,請讓我知道我如何能-
testtest2
作為最終輸出。
嘗試使用此正則表達式:
<[^>]+>
演示:
http://regex101.com/r/kI5cJ7/2
討論
將html代碼放在字符串中,然后將正則表達式應用於此字符串。
var htmlCode = ...;
htmlCode = htmlCode.replace(/<[^>]+>/g, '');
原始正則表達式使用太多字符( *
是貪婪的運算符)。
檢查有關Star和Plus重復的頁面,尤其是“當心貪婪!”部分。 。
正則表達式的大多數新手都會嘗試使用
<.+>
。 當他們在像This is a <EM>first</EM> test
的字符串上測試它時會感到驚訝,This is a <EM>first</EM> test
。 您可能希望正則表達式匹配<EM>
並且在匹配之后繼續</EM>
。但事實並非如此。 正則表達式將匹配
<EM>first</EM>
。 顯然不是我們想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.