我想从包含单词" site"
的页面中删除一些脚本<scritp>
o.com
bla bla bla
</script><p>this is line></p>
<script>
google.com/jquery.js !
</script>
<scritp>
site.com
bla bla bla
</script><p>aa</p>
CONTENT
STYLE
SIDEBAR
...
<scritp>
site.com
aaa bla bla bla
</script><p>a</p>
我使用以下正则表达式:
<scritp>.*?site.*?<\/script>
但它包含与匹配无关的行。
调试链接:https://regex101.com/r/rC0vF8/2
我找到匹配项时如何停止:</script>
我希望一次匹配所有<script>site.com</script>
答案 0 :(得分:1)
令人困惑的是,您的样本中有一些scritp
和一些script
演示。这是什么意思?但是,如果这对您的输入很方便,则可以使用negative lookahead:
<script>((?!</script).)*?site(?1)*</script>
更多解释和demo at regex101
对于这类问题,通常首选parser解决方案。取决于输入。
答案 1 :(得分:0)
请改用此正则表达式:/<scritp>\nsite.*?<\/script>/gsi
您的正则表达式会获取第一个<script>
,然后是site.*
,然后是</script>