在有人向我指出这个问题之前,我知道人们无法使用正则表达式解析html :)这不是我想要做的。
我需要的是:
输入:包含html的字符串。 输出:替换所有打开标记
***<tag>
所以,如果我得到
<a><b><c></a></b></c>, I want
***<a>***<b>***<c></a></b></c>
作为输出。
我尝试过类似的事情:
(<[~/].+>)
并将其替换为
***$1
但似乎并不像我想要的那样工作。有什么指针吗?
澄清:保证输入中没有自闭标签或评论。
答案 0 :(得分:2)
您只有两个问题:^
是要从字符类中排除项目的字符,而不是~
;并且.+
是贪婪的,因此会在最终>
之前匹配尽可能多的字符。将其更改为:
(<[^/].+?>)
您也可以删除括号并替换为$0
或$&
,具体取决于语言。
答案 1 :(得分:1)
尝试使用:(<[^/].*?>)
并将其替换为***$1