我想检测多项式表达式中的所有项,如
的x ^ 2 + 3×2
我希望将字符串分隔为'+'和' - '的子字符串。换句话说,我希望单独列出这些术语。为简化起见,我在字符串的开头加上“+”或“ - ”,如果不存在则简化。
+ X ^ 2 + 3×2
现在,我需要一个可以单独检测所有术语的正则表达式。我还需要记住,可以有尽可能多的术语。
我确实尝试了像
这样的东西[+ - ]?(?+)
但是因为我是正则表达式的新手,所以我认为我的能力不在于它。
我需要你的帮助。请注意,在这种情况下,所需的结果是:
提前致谢!
答案 0 :(得分:4)
正如约瑟夫的回答所示,正则表达式可以完成你所述的有限工作。
但是如果你想处理更复杂的表达式,那么正则表达式不会削减它。考虑
x^(-2)+3x-2
或未展开的表达,例如
x^2+3(x-2)-2
这些需要解析器:请参阅Regular Expression Vs. String Parsing
答案 1 :(得分:3)
试试这个正则表达式:
/[+-]?[^+-]+/g
以下是一个快速解释:
[+-]? // Optionally find either a + or a -
[^+-]+ // Find as many non-plus-or-minus characters as possible
在此处查看:[{3}}