【发布时间】:2017-05-07 20:23:57
【问题描述】:
我创建了这个正则表达式,但不知何故它只检测到第一部分 正则表达式不是最后一部分。我想知道发生了什么?
代码如下:
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
任何建议,
谢谢
【问题讨论】:
-
你期望得到什么输出?
-
but somehow it only detects the first part of the regex not the last part是什么意思? -
我希望得到整个字符串。好吧,它只给我 -2√3254 而不是整个字符串,这是我所期望的。 @YCF_L
-
这就是你的全部代码吗?输入是什么?
-
你的意思是
String m = "-2√3254i/18.5"; String regex = "-?\\d+(\\.\\d*)?\\√\\d+(\\.\\d*)?i+\\/+\\d+(\\.\\d*)?"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(m); if (matcher.find()) { System.out.println(matcher.group()); }吗?