正则表达式匹配打开和关闭的html标签
这个问题在这里已经有了答案:
test
方法为match2
返回true,因为它找到了匹配项 。
为了解决它,以这种方式改变你的正则表达式:
^(?:<(w+)(?:(?:s+w+(?:s*=s*(?:".*?"|'.*?'|[^'">s]+))?)+s*|s*)>[^<>]*</1+s*>|<w+(?:(?:s+w+(?:s*=s*(?:".*?"|'.*?'|[^'">s]+))?)+s*|s*)/>|<!--.*?-->|[^<>]+)*$
描述(点击放大)
演示
http://jsfiddle.net/r2LsN/
讨论
正则表达式首先定义所有允许的模式:
<tag>...</tag>
<tag/>
在这里我们可以找到零或更多之前隔开/
) <!-- ... -->
<
或>
文字。 那么这些模式可能会在测试字符串的开始和结束之间出现零次或多次: ^(?:pattern1|pattern2|pattern3|pattern4)*$
。
上一篇: Regular Expression to match open and closed html tags
下一篇: Building Regular Expression (RegEx) to extract text of HTML tag