Java 使用正则表达式或在正则表达式中拆分
我想用正则表达式拆分一个数学方程,但有一点我遇到了麻烦 我们将以这个字符串为例:Java 使用正则表达式或在正则表达式中拆分,java,regex,Java,Regex,我想用正则表达式拆分一个数学方程,但有一点我遇到了麻烦 我们将以这个字符串为例:3x^3+2x^2-6x*-3 使用正则表达式拆分后,我想得到以下结果: 我期望的结果是: [0] 3x^3 [1] +2x^2 [2] -6x [3] *-3 我正在尝试这个RE:(?=(\\*-\\\-\\\\+\\\\\\*\\\/) 在方程.split((?=(\\*-\\\-\\\\\+\\\*\\\\/)之后 结果是: [0] 3x^3 [1] +2x^2 [2] -6x [3] * [4] -3 我
3x^3+2x^2-6x*-3
使用正则表达式拆分后,我想得到以下结果:
我期望的结果是:
[0] 3x^3
[1] +2x^2
[2] -6x
[3] *-3
我正在尝试这个RE:(?=(\\*-\\\-\\\\+\\\\\\*\\\/)
在方程.split((?=(\\*-\\\-\\\\\+\\\*\\\\/)之后
结果是:
[0] 3x^3
[1] +2x^2
[2] -6x
[3] *
[4] -3
我无法删除该部分-\\-
,因为如果我的字符串是:3x^3+2x^2-6x-3
我希望:
[0] 3x^3
[1] +2x^2
[2] -6x
[3] -3
正如您所看到的,我的问题是,我如何编写一个RE来同时匹配*-
,或者只匹配*
或者只匹配-
我的想法是,
(?=(\*-\\[^*]-\\+\*\\*\\\\\\\/)
,对前面的-
求反,但这不起作用。你需要添加一个否定的后视-如果前面没有*
,你只想在连字符处拆分:
equation.split("(?=(?<!\\*)-|\\+|\\*|/)")
equation.split(“(?=”)这正是我想要的!谢谢兄弟!