我有一个正则表达式
我想匹配任何包含数字值后跟"-"和另一个数字的字符串。中间可以有任意字符串。
此外,我希望能够使用Java Matcher类的group函数提取这些数字。
我期望得到这个结果。
.*?(\\d+.*?\\d*).*?-.*?(\\d+.*?\\d*).*?
我想匹配任何包含数字值后跟"-"和另一个数字的字符串。中间可以有任意字符串。
此外,我希望能够使用Java Matcher类的group函数提取这些数字。
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+)?
。 - Wiktor Stribiżew