【发布时间】:2017-09-10 11:34:40
【问题描述】:
我有一个正则表达式
.*?(\\d+.*?\\d*).*?-.*?(\\d+.*?\\d*).*?
我想匹配包含数字值后跟“-”和另一个数字的任何字符串。任何字符串都可以介于两者之间。
另外,我希望能够使用 Java Matcher 类的组函数提取数字。
Pattern pattern = Pattern.compile(".*?(\\d+.*?\\d*).*?-.*?(\\d+.*?\\d*).*?");
Matcher matcher = pattern.matcher("13.9 mp - 14.9 mp");
matcher.matches();
我期待这个结果:
matcher.group(1) // this should be 13.9 but it is 13 instead
matcher.group(2) // this should be 14.9 but it is 14 instead
知道我错过了什么吗?
【问题讨论】:
-
转义
\d+.*\d*或更好的点,使用\d+(?:\.\d+)?