使用正则表达式拆分数学方程式



所以我试图拆分一个简单的数学方程,其中包含两个科学记数法的双精度,例如"54E-1-57E-1"。我正在尝试找到正则表达式模式来为我执行此操作,但是我遇到了两个问题。首先,以下代码成功拆分了我的字符串,但由于某种原因,negTest 打印出 false,我不知道为什么。

public static void main(String[] args) {
    String testString = "54E-1-57E-1";
    boolean negTest = string.contains("(?<=\d)-(?=\d)");
    System.out.println(negTest);
    String[] output = testString.split("(?<=\d)-(?=\d)");
    System.out.println(Arrays.toString(output));
}
//Output:
//false
//[54E-1, 57E-1]

我认为这是我的正则表达式的问题,但字符串在减号周围成功拆分,这让我感到困惑。第二个问题是我将如何拆分它,以便减号包含在第二项中,例如

[54E-1, -57E-1]

任何帮助/解释都非常感谢!

> 1> contains 不将正则表达式作为参数。所以你试图(?<=\d)-(?=\d)匹配为字符串而不是正则表达式

2>要包含-,您的正则表达式应该是

(?<=\d)(?=-\d)

最新更新