安卓正则表达式 - 返回匹配的字符串
在我的Android项目中,我有一个正则表达式和一个字符串,其中我应该有匹配的表达式。问题是,我只找到了一个返回布尔值的方法。有没有东西,只返回匹配的字符串(例如,如果我的字符串是“在中午12点去商店”,我想检查这个字符串中是否有时间(在这个例子中 - “12pm”),如果是 - 返回它)?提前致谢。matches()
在我的Android项目中,我有一个正则表达式和一个字符串,其中我应该有匹配的表达式。问题是,我只找到了一个返回布尔值的方法。有没有东西,只返回匹配的字符串(例如,如果我的字符串是“在中午12点去商店”,我想检查这个字符串中是否有时间(在这个例子中 - “12pm”),如果是 - 返回它)?提前致谢。matches()
你应该得到你需要的捕获组。阅读此内容。您将找到问题的答案。
下面是一个简单的示例。我想你会明白的。
Pattern p = Pattern.compile(".*?(\\d{2}(am|pm)).*");
Matcher m = p.matcher("go to the shop at 12pm");
if(m.matches())
return m.group(1);
这将返回
实际上你可以用更好的方式得到你想要的。12pm
Pattern p = Pattern.compile("\\d{2}(am|pm)");
Matcher m = p.matcher("go to the shop at 12pm");
if(m.find())
return m.group(0); //or you can write return m.group(); result will be the same.