对冒号绑定字符串的Java正则表达式分组

时间:2018-04-20 22:50:49

标签: java regex

我试图使用正则表达式对一段文本中以冒号限定的字符串进行分组,例如

:smile: blah :anger:,我想要:smile::anger:

一些文字:sad:,我想要:sad:

我尝试使用以下内容,但似乎贪婪匹配最大的字符串:

Pattern p = Pattern.compile("(:.*?:)");
Matcher m = p.matcher(text);

在第一种情况下,它给了我整个字符串,而在第二种情况下则没有。

1 个答案:

答案 0 :(得分:-1)

你的正则表达式看起来很好试试这个:

    String s = ":smile: blah :anger:, I want :smile: and :anger:";
    Pattern p = Pattern.compile("(:.*?:)");
    Matcher m = p.matcher(s);

    while(m.find()){
        System.out.println(m.group());
    }