我有如下输入,其中有两个脚本标记,第二个脚本标记有src属性,其中我需要检查是否存在wrapperId={wrapper_id}
-
<script type="text/javascript"> var blah; </script><script id="bleh" type="text/javascript" src="//domain/test.js?siteid=270606&testmode=0&banner360=1&banner=0&placementid=0&tp=3&wrapperId={wrapper_id}" > </script>
以下是我到目前为止准备的正则表达式 -
<script(.*?)(?!<\/script>)(.*?)wrapperId={wrapper_id}(.*?)<\/script>
我正在尝试匹配不包含结束脚本标记(</script>
)的脚本标记。
但是,如果我在https://regex101.com/r/oZ2jL6/1运行它,我会看到它与第一个脚本标记匹配。
如果我使用PHP preg_match(),结果也会说找到匹配,但我确信它匹配第一个脚本标记,我不想要。
已经检查过相关问题 -
Regular expression to match a line that doesn't contain a word?
答案 0 :(得分:0)
我正在尝试匹配不包含结束脚本标记()的脚本标记。
在您的示例中,您有一个结束标记。匹配html的正则表达式通常不是一个好主意。无效HTML的正则表达式会让您头疼。
假设像你的例子那样的结束标记尝试:
<script(.*?)<\/script><script(.*?)wrapperId={wrapper_id}(.*?)<\/script>