我这里有一个字符串,
String message = "hi test message >< abcd < pqr <variable> xyz <tag> testing <>";
我想用<>
替换所有<tag>
<anything>
(.*)
,因为我正在尝试使用message = message.replaceAll("<(.*)>", "(.*)");
构建正则表达式。
我尝试了以下内容,
hi test message >(.*)
但结果是
hi test message >< abcd < pqr (.*) xyz (.*) testing (.*)
我期待的结果就是这个
{{1}}
有人可以帮助我实现这个结果吗?
提前谢谢你!
答案 0 :(得分:2)
要捕获标记内容,请尝试使用此正则表达式(假设它们从未嵌套):
<([^<>])*>
请注意,这将完全忽略测试字符串的这一部分:
< abcd < pqr
答案 1 :(得分:2)
使用以下正则表达式删除所有类型的标记。
@"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)|(?>(?:[>'""]+|'[^']*'|""[^""]*"")*)"
答案 2 :(得分:1)
如果您真的只想替换<>
,<tag>
,<anything>
而不是其他任何内容,请尝试:
<(tag|anything)?>
如果您想匹配所有封闭的标签,包括空标签:
<[^<>]*>
答案 3 :(得分:0)
您可以使用此正则表达式
"<(|tag|anything)>"