[英]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.