我正在尝试使用正则表达式来搜索HTML页面上的某些元素,并捕获是否满足三种模式。任何帮助都将不胜感激。
元素是javascript,可以在多行上。
我正在寻找任何匹配的模式
<script XXXXXXXXX>
ZZZZZZ
ZZZZZZ
ZZZZZZ
ABCDEF
ZZZZZZ
ZZZZZZ
</script>我需要捕获所有Z以及ABCDEF
XXXXXX可以是任何东西。
我试过了
<script[^>]*>(([\s\S]*?)ABCDEF([\s\S]*?)<\/script>但这似乎也捕获了没有ABCDEF的元素。
<script>
QWERTY
</script>
<script>
ZZZZZZ
ABCDEF
ZZ@#<%
</script>
<script>
ASDFG
</script>在本例中,我只想捕获
ZZZZZZ
ABCDEF
ZZ@#<%在它之前或之后都没有。
发布于 2015-09-24 07:05:08
使用这个模式,这应该会给出你想要的结果
<script[^>]*>([\s\S]+)(?=(\bABCDEF\b))([\s\S]+)<\/script>
匹配组1和组3
请在此处查看演示https://regex101.com/r/wL4iL7/4
说明
<script[^>]*>: matches script and everything within it
[\s\S]+: matches all white space and non whitespace characters
(?=(\bABCDEF\b)): a look ahead to check if ABCDEF is present with boundaries \b surrounding it
<\/script>: matches the closing scripthttps://stackoverflow.com/questions/32743436
复制相似问题