正则表达式匹配前面没有另一个字符串的任何字符串

Regex match any string that isn't preceded by another string

本文关键字:字符串 另一个 任何 前面 正则表达式      更新时间:2023-09-26

我不擅长正则表达式,我一直在努力解决这个问题。问题是我有一个字符串,我想匹配任何前面没有"^"的"+"或"-"。

字符串示例:

100x^-3+2x-10

上面的字符串将被数学格式化或读取为" 100乘以x的-3次方,加上2乘以x,减去10 "。

我想匹配"2x"之前的"+"answers"10"之前的"-",但不是"100x^"之后的"-"。我希望这不会让你感到困惑。我试过下面的regg,没有运气:

[^'^]['+|'-]

+-划分:

"100x^-3+2x-10".replace(/([^^])[-+]/g,'$1@').split('@')
Output: ["100x^-3", "2x", "10"]

我使用@作为临时字符(但您可以使用一组唯一的字符)来标记不以^为前缀的符号,然后由所选的临时字符安全地分割。

您可以使用旧的技巧,通过反转字符串来模拟向后看,然后与/['+'-](?!='^)/进行匹配。

它运行在chrome控制台,无论如何你可以尝试:"100x^-3+2x-10".match(/[^'^$](['-|'+])/ig),我建议你测试你的regex在谷歌chrome控制台。

试一试:

/(?<!'^)[+-]/