正则表达式
.*([0-9]{3}\\.[0-9]{2}).*
在"一些短句111.01"中找到一个匹配,但它未能匹配第一次出现" 111.01"在"一些短句111.01& 222.02"
我尝试了懒惰量词.*([0-9]{3}\\.[0-9]{2})?.*
或.*([0-9]{3}\\.[0-9]{2}).*?
无济于事。
请帮助,我需要两次出现,这是我的代码。
谢谢
Pattern myPattern = Pattern.compile(".*([0-9]{3}\\.[0-9]{2}).*");
Matcher m = myPattern.matcher(mystring);
while (m.find()) {
String found = m.group(1);
}
答案 0 :(得分:0)
领先和尾随"。*"使您在一场比赛中匹配整个字符串。在你的情况下,所有惰性量词都是控制你得到主题中的第一个而不是最后一个。
答案 1 :(得分:0)
你需要删除"。*" s。试试这个:
String mystring = "some short sentence 111.01 & 222.02 ";
Pattern myPattern = Pattern.compile("([0-9]{3}\\.[0-9]{2})");
Matcher m = myPattern.matcher(mystring);
while(m.find()) {
System.out.println("Found value: " + m.group(1) );
}
输出:
Found value: 111.01 Found value: 222.02