正则表达式匹配感叹号java

时间:2016-03-21 04:27:04

标签: java regex

我对正则表达式非常陌生,我正在努力完成一个可以帮助我的项目的小项目。我想知道如何计算(连续)感叹号序列组。例如,让我们考虑以下字符串

String s = "OMG!!!, i love Computers !!!! and this !!! is really good!" 

这里的计数应该返回3.我尝试了以下内容,但它并不像我想要的那样 public static int exclamation(String list)抛出异常{

String[] words = (list.split("\\s+"));
  Pattern pattern = Pattern.compile("\\*?(!!)*\\b");
int count = 0;
for(String s:words)
{       
    Matcher matcher = pattern.matcher(s);       
    if(pattern.matcher(s) != null)
    {
        System.out.println(s);

    }
}

return count;

}

1 个答案:

答案 0 :(得分:1)

你的正则表达式不会打印任何!由\b标记。你的正则表达式希望!旁边有一个单词字符,但实际上!后面没有单词字符,而是非单词字符空间。

Pattern pattern = Pattern.compile("\\*?(!{2,})");

Pattern pattern = Pattern.compile("!{2,}");

DEMO