1

在有人向我指出这个问题之前,我知道无法使用正则表达式解析 html :) 这不是我想要做的。

我需要的是:

输入:一个包含 html 的字符串。输出:替换所有开始标签

***<tag>

所以如果我得到

<a><b><c></a></b></c>, I want

***<a>***<b>***<c></a></b></c>

作为输出。

我试过类似的东西:

(<[~/].+>)

并将其替换为

***$1

但似乎并没有按照我想要的方式工作。任何指针?

澄清:保证输入中没有自闭标签或注释。

4

2 回答 2

2

您只有两个问题:^是从字符类中排除项目的字符,而不是~;并且.+是贪婪的,所以会在 final 之前匹配尽可能多的字符>。将其更改为:

(<[^/].+?>)

您也可以删除括号并替换为$0or $&,具体取决于语言。

于 2012-06-21T01:01:21.517 回答
1

尝试使用:(<[^/].*?>)并将其替换为***$1

于 2012-06-21T00:56:55.227 回答