正则表达式匹配打开和关闭的html标签

这个问题在这里已经有了答案:

  • RegEx匹配除XHTML自包含标签之外的开放标签35个答案

  • 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)*$

    链接地址: http://www.djcxy.com/p/76863.html

    上一篇: Regular Expression to match open and closed html tags

    下一篇: Building Regular Expression (RegEx) to extract text of HTML tag