Java Regex没有按预期工作

时间:2017-05-07 20:23:57

标签: java regex string matcher

我创建了这个正则表达式,但不知何故它只检测到第一部分 正则表达式不是最后一部分。我想知道发生了什么事?

以下是代码:

String m = -2√3254i/18.5
String regex = "-?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i\\/\\d+(\\.\\d*)?"

我尝试了很多不同的方法,例如:

-?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i+\\/+\\d+(\\.\\d*)?
-?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i/\\d+(\\.\\d*)?
-?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i\\(\\/\\d+(\\.\\d*))?

它们都不起作用。

输出始终为

-2√3254

任何建议,

谢谢

1 个答案:

答案 0 :(得分:1)

好的,所以我的正则表达式实际上由许多正则表达式组成:

String regex = "a regex | another regex | -?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?\\i" 
              + "|another regex | -?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i\\/\\d+ (\\.\\d*)? 

问题出现在两个显示的正则表达式之间。 第一个 符号正则表达式由匹配器首先选取,但我真的打算用于 第二个 用于获取String m = "-2√32454i/18.5"

的符号正则表达式

似乎匹配器在满足其中一个布尔条件时退出匹配。 我所要做的就是重新排列构成我的正则表达式的正则表达式的顺序。