标签的正则表达式

时间:2010-07-05 03:58:55

标签: regex

我需要编写与任何一对标记<(.*?)>.*?</\1>匹配的正则表达式,但前提是它们之间没有其他对标记。标签名称是可变长度。

3 个答案:

答案 0 :(得分:3)

您可以通过排除打开它们所需的尖括号来轻松排除嵌套标记:

<([^<>]+)>[^<]*</\1>

如果开始标记具有属性,则此正则表达式将不起作用。如果你想允许这些,试试这个:

<(\S+)[^<>]*>[^<]*</\1>

答案 1 :(得分:1)

你不应该用正则表达式来做这件事。 However, don't take my word for it.

答案 2 :(得分:0)

只要你保持“只有它们之间没有其他标签”这很容易。

<\s*([^>]+?)\s*>[^<]*</\s*\1\s*>