【问题标题】:Android regular expression - return matched stringAndroid正则表达式 - 返回匹配的字符串
【发布时间】:2012-03-11 02:59:52
【问题描述】:

在我的 Android 项目中,我有一个正则表达式和一个字符串,其中我应该有匹配的表达式。问题是,我只找到了一个matches() 方法,它返回布尔值。有什么东西只返回匹配的字符串(例如,如果我的字符串是“去商店在 12pm”,我想检查这个字符串中是否有时间(在这个例子中 - “12pm”),如果它是 - 退回它)? 提前致谢。

【问题讨论】:

    标签: java android regex


    【解决方案1】:

    你应该得到你需要的捕获组。阅读this。您会找到问题的答案。
    这是一个简单的例子。我想你会明白的。

    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.
    

    【讨论】:

    • 这正是我需要的!非常感谢,@Ademiban!
    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 2020-04-24
    • 2012-06-05
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多