我需要编写与任何一对标记<(.*?)>.*?</\1>
匹配的正则表达式,但前提是它们之间没有其他对标记。标签名称是可变长度。
答案 0 :(得分:3)
您可以通过排除打开它们所需的尖括号来轻松排除嵌套标记:
<([^<>]+)>[^<]*</\1>
如果开始标记具有属性,则此正则表达式将不起作用。如果你想允许这些,试试这个:
<(\S+)[^<>]*>[^<]*</\1>
答案 1 :(得分:1)
你不应该用正则表达式来做这件事。 However, don't take my word for it.
答案 2 :(得分:0)
只要你保持“只有它们之间没有其他标签”这很容易。
<\s*([^>]+?)\s*>[^<]*</\s*\1\s*>