0

我这里有一个字符串,

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 (.*)

谁能帮我实现这个结果?

先感谢您!

4

4 回答 4

2

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

<([^<>])*>

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

< abcd < pqr
于 2013-01-11T11:51:05.027 回答
2

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

@"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)|(?>(?:[>'""]+|'[^']*'|""[^""]*"")*)"
于 2013-01-11T11:52:09.230 回答
1

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

<(tag|anything)?>

如果要匹配所有包含的标签,包括空标签:

<[^<>]*>
于 2013-01-11T11:51:11.913 回答
0

您可以使用此正则表达式

"<(|tag|anything)>"
于 2013-01-11T11:55:59.573 回答