【发布时间】:2019-05-20 12:25:42
【问题描述】:
我制作了一个在我的代码中可以正常运行的 RegExp,但它只与 ES2018 兼容,因为它使用了否定的后视。一个库正在使用 RegExp 函数,所以我无法更改 RegExp 的使用方式。
我尝试在开头放置一个非捕获组以查找“不是”字符,但在我测试时它的工作方式不同。
/((?<![\^+-])[0-9]+)/g
在运行我的测试套件时,/(?:[^^+-])([0-9]+)/g 这样的正则表达式无法通过测试,因为它们包含前面的字符。
【问题讨论】:
-
您是如何实现该模式的——您对匹配项做了什么?你能发布Javascript代码吗?
-
@CertainPerformance
/((?<![\^+-])[0-9]+)/g用于匹配[Cu(NH3)6]^+6_3(H2O)^+5_12中的元素或组计数。 -
@CertainPerformance 我已经检查了this thread 中给出的解决方案。 Here 是我的代码的上下文。如前所述,我正在将代码输入另一个库,所以很遗憾我不能使用反转方法。
-
您应该在问题本身中发布所有相关的 Javascript 代码(如在第一条评论中)。如果您无法更改正则表达式的使用方式(并且仅提取完整匹配项),那么您正在寻找的内容是不可能的。我希望更改
Token函数
标签: javascript regex regex-lookarounds