使用正则表达式计算出现次数

时间:2014-05-18 15:03:28

标签: java regex file

如何计算具有特定模式的文本中的单词(字符串)数量?

public static int matches(File file, Pattern p) {

    int count = 0;

        BufferedReader reader = new BufferedReader( new FileReader(file) );
        String line = reader.readLine();
        while (line  != null) {
             String[] vs = line.split(" ");
             for(String s : vs){
                 if(s.equals(p)){ // the problem is here
                     count++;
                     }
                 line = reader.readLine();
             }
    return count;
      }

如何计算单词(字符串)中某个模式出现的次数?

public static int matchesString(String s, Pattern p)  {
       I have no ideia how to do this method...

    return 0;
}

2 个答案:

答案 0 :(得分:0)

在第一个代码段中,您可以使用String.matches(String regex)代替equals方法 -

if(s.matches(regexString)) {  //regexString is a string not an Pattern instance

对于第二个,您可以使用Matcher类 -

int count = 0;
Matcher m = p.matcher(s);
while(m.find()) {
    count++;
}
return count;

答案 1 :(得分:0)

使用正则表达式和单词边界,您可以使用以下内容获取一行中单词的出现次数:

int count = line.split("\\b" + word + "\\b").length -1;