我吮吸正则表达式,我一直试图解决这个问题。 问题是我有一个字符串,我想匹配任何“+”或“ - ”,前面没有“^”。
示例字符串:
100x^-3+2x-10
上面的字符串将在数学上格式化或读作“100次x到-3次幂加上两次x,减去十次”。
我希望在“10x”之前匹配“+”,在“10”之前匹配“ - ”,而在“100x ^”之后匹配不“ - ”。我希望这不是那么令人困惑。我试过以下注册表,没有运气:
[^\^][\+|\-]
显然我在某个地方错过了一个很大的细节。
答案 0 :(得分:0)
你可以通过反转字符串,然后匹配/[\+\-](?!=\^)/
来使用模拟后面的旧技巧。
答案 1 :(得分:0)
它在Chrome控制台中运行正常,无论如何你可以试试:"100x^-3+2x-10".match(/[^\^$]([\-|\+])/ig)
,我建议你在谷歌浏览器的控制台上测试你的正则表达式。
答案 2 :(得分:0)
如果您需要按+
或-
分组:
"100x^-3+2x-10".replace(/([^^])[-+]/g,'$1@').split('@')
Output: ["100x^-3", "2x", "10"]
我使用@
作为临时字符(但您可以使用一组唯一的字符)来标记没有^
前缀的符号,然后按所选的临时字符安全地分割。
答案 3 :(得分:0)
试一试:
/(?<!\^)[+-]/