正则表达式不在<script>标签</script>中

时间:2014-06-25 23:04:41

标签: regex regex-lookarounds

需要一些正则表达式的帮助。我想匹配给定的HTML字符串中的所有内容,这些字符串与\*[a-z0-9\_]+\*开始和结束标记之间不存在的模式<script>相匹配。我知道这与外观有关,但我不知道如何到达那里。

2 个答案:

答案 0 :(得分:2)

使用正则表达式环视。您可以使用:

(?!<script>)\*[a-z0-9\_]+\*(?!</script>)

只有在脚本

之前和后面没有正则表达式时才会匹配

enter image description here

答案 1 :(得分:0)

(免责声明)第1号规则,不要使用正则表达式解析html。


您必须匹配脚本标记以避免它们 答案在第1组中,检查长度,然后检查其有效性。

    # <script>.*?</script>|(\*[a-z0-9_]+\*)

    <script> .*? </script>
 |  
    ( \* [a-z0-9_]+ \* )               # (1)