Java ReplaceAll对我没有帮助

时间:2013-01-11 11:49:15

标签: java regex replace

我这里有一个字符串,

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}}

有人可以帮助我实现这个结果吗?

提前谢谢你!

4 个答案:

答案 0 :(得分:2)

要捕获标记内容,请尝试使用此正则表达式(假设它们从未嵌套):

<([^<>])*>

请注意,这将完全忽略测试字符串的这一部分:

< abcd < pqr

答案 1 :(得分:2)

使用以下正则表达式删除所有类型的标记。

@"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)|(?>(?:[>'""]+|'[^']*'|""[^""]*"")*)"

答案 2 :(得分:1)

如果您真的只想替换<><tag><anything>而不是其他任何内容,请尝试:

<(tag|anything)?>

如果您想匹配所有封闭的标签,包括空标签:

<[^<>]*>

答案 3 :(得分:0)

您可以使用此正则表达式

"<(|tag|anything)>"