多次使用否定前瞻(或将多个字符与^匹配)
Using negative lookahead multiple times (or matching multiple characters with ^)?
我想做这样的事情:
/<script[^>]*>(?!<'/script>)*<'/script>/g
使用javascript匹配html字符串中的所有脚本标记。
我知道这行不通,但我似乎找不到任何其他解决方案。脚本标记可以使用src属性并在(<script src="..." type="text/javascript"></script>
)之后自行关闭它,也可以在脚本标记(<script type="text/javascript">...</script>
)中包含代码
您已关闭
/<script[^>]*>(?:(?!<'/script>).)*<'/script>/g
你一定有吃东西的实际脚本体。这就是.
在这里的作用。
先行检查必须在每个字符之前进行,因此它被包装在一个额外的(非捕获)组中。要捕获组1中的脚本源代码,只需在(?:...)
周围添加另一组parens,如注释中指出的@AlanMoore。
试试这个
/<script[^>]*>.*?<'/script>/g
我看不出有什么理由消极看待未来。.*?
是一个惰性匹配,因此它只匹配到下一个结束标记,而不匹配到最后一个。
相关文章:
- Regex匹配除“”之外的所有字符;.js”;
- 用于匹配不带字符的单词的正则表达式
- 如何将单词(包括单词)与连字符匹配
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- RegExp插入字符匹配并且应该'不要
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 用于匹配精确单词的正则表达式会影响特殊字符匹配
- 如何正则表达式与特殊字符 / 匹配
- 正则表达式使用javascript为每个字符匹配不同的集合
- 在开头或结尾使用特殊字符匹配单词
- JS正则表达式在数据表中用连字符匹配整个单词
- 正则表达式,用于将所有字符匹配到下一个匹配项
- 仅与字母字符匹配的正则表达式变量
- Javascript正则表达式字符匹配
- 当字符匹配模式时从数组返回索引
- RegExp通过字符串的中间字符匹配来拆分字符串
- 将正则表达式与下一个特殊字符匹配,同时允许空格