* * * ) * >".match(/(?/g) . 同一行代码抛出 SyntaxError: Invalid -6ren">
gpt4 book ai didi

javascript - 正则表达式适用于浏览器但不适用于 Node.js

转载 作者:搜寻专家 更新时间:2023-10-31 23:40:16 24 4
gpt4 key购买 nike

我有一个正则表达式:/(?<!\<)\<[a-zA-Z0-9. _]+\>/g .如果我这样做,在浏览器控制台中工作正常 "(<<a1>> * <b1> * <c1> * <d1>) * <<e1>>".match(/(?<!\<)\<[a-zA-Z0-9. _]+\>/g) .

同一行代码抛出 SyntaxError: Invalid regular expression: /(?<!<)<([a-zA-Z0-9. _]+)>/: Invalid group在 Node.js 中执行时。

我想匹配包含在 < 中的字符串中的所有变量和 >如果包含在 << 中,请忽略它们和 >> .

最佳答案

作为答案(更多空间):
除非node.js使用它自己的正则表达式引擎而不是 JavaScript一,JS 不支持后视,因此 (?<!)不能工作。要从其他编程语言中模仿此功能,请查看 Flagrant Badassery或使用其他包,如 node-re2 node-perl-regex .

至于浏览器之间的差异,Chrome does support lookbehinds .

关于javascript - 正则表达式适用于浏览器但不适用于 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48263642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com