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(“(?=”)这正是我想要的!谢谢兄弟!