正则表达式匹配任何不在另一个字符串之前的字符串

时间:2013-03-16 23:56:15

标签: javascript regex

我吮吸正则表达式,我一直试图解决这个问题。 问题是我有一个字符串,我想匹配任何“+”或“ - ”,前面没有“^”。

示例字符串:

100x^-3+2x-10

上面的字符串将在数学上格式化或读作“100次x到-3次幂加上两次x,减去十次”。

我希望在“10x”之前匹配“+”,在“10”之前匹配“ - ”,而在“100x ^”之后匹配“ - ”。我希望这不是那么令人困惑。我试过以下注册表,没有运气:

[^\^][\+|\-]

显然我在某个地方错过了一个很大的细节。

4 个答案:

答案 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)

试一试:

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