1

我想检测多项式表达式中的所有项,例如

x^2+3x-2

我希望将字符串分隔为“+”和“-”处的子字符串。换句话说,我想单独拥有这些条款。为了简化事情,我会在字符串的开头添加“+”或“-”(如果还没有的话)以简化事情。

+x^2+3x-2

现在,我需要一个可以分别检测所有术语的正则表达式。我还需要记住,可以有尽可能多的术语。

我确实尝试过类似的东西

[+-]?(.+?)

但由于我是正则表达式的新手,我认为让它发挥作用不在我的能力范围之内。

我需要你的帮助。请注意,在这种情况下,所需的结果是:

  1. +x^2
  2. +3x
  3. -2

提前致谢!

4

2 回答 2

4

正如约瑟夫的回答所示,正则表达式可以完成您所说的有限工作。

但是,如果您想处理更复杂的表达式,那么正则表达式不会削减它。考虑

x^(-2)+3x-2

或未展开的表达式,例如

x^2+3(x-2)-2

这些需要解析器:请参阅正则表达式与。字符串解析

于 2013-08-09T02:14:03.983 回答
3

试试这个正则表达式:

/[+-]?[^+-]+/g

这是一个快速的解释:

[+-]?   // Optionally find either a + or a -
[^+-]+  // Find as many non-plus-or-minus characters as possible

在此处查看实际操作:http ://regex101.com/r/qA6nS0

于 2013-08-09T01:57:06.200 回答