1

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

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]

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

4

1 回答 1

1

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

2>要包括-,你的正则表达式应该是

(?<=\\d)(?=-\\d)
于 2013-09-28T17:02:55.067 回答