Java 匹配器找不到匹配项
我试图提取以下字符串中的数字:Java 匹配器找不到匹配项,java,regex,matcher,Java,Regex,Matcher,我试图提取以下字符串中的数字: 2014年9月29日 我目前正在使用代码: Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})"); Matcher m = p.matcher(startDatepicker); String startYear = m.group(3); String startMonth = m.group(1); String startDay = m.group(2); startDatepic
2014年9月29日
我目前正在使用代码:
Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})");
Matcher m = p.matcher(startDatepicker);
String startYear = m.group(3);
String startMonth = m.group(1);
String startDay = m.group(2);
startDatepicker
包含:09/29/2014
但是,我没有收到任何匹配项。。我还试着用\\
避开前斜杠,但也没用
我错过什么了吗
谢谢您的帮助。您需要调用
find()
来遍历您的匹配组
Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})");
Matcher m = p.matcher(startDatepicker);
while (m.find()) {
...
}
find()
方法在传递给p.matcher()
的输入中搜索正则表达式的出现。如果可以找到多个匹配项,此方法将查找第一个匹配项,然后在每次后续调用中移动到下一个匹配项。在访问匹配的组之前,您需要在匹配器上调用find()
,并检查是否已找到匹配项:
Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})");
Matcher m = p.matcher(startDatepicker);
if (!m.find()) {
return;
}
String startYear = m.group(3);
String startMonth = m.group(1);
String startDay = m.group(2);
调用m.find()