📜  在正则表达式中查找重复词的Java程序(1)

📅  最后修改于: 2023-12-03 15:08:03.730000             🧑  作者: Mango

在正则表达式中查找重复词的Java程序

本程序使用Java语言,利用正则表达式来查找文本中的重复单词。

准备

在使用本程序之前,需要先安装Java环境,并且熟悉正则表达式的基本语法。

实现

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WordCounter {
    public static void main(String[] args) {
        String text = "hello world world java world java";
        Pattern pattern = Pattern.compile("\\b(\\w+)\\b\\s+\\b\\1\\b");
        Matcher matcher = pattern.matcher(text);
        while (matcher.find()) {
            System.out.println("Duplicate word found: " + matcher.group(1));
        }
    }
}

该程序中使用了Java自带的正则表达式库,将正则表达式编译成一个Pattern对象,再用该对象的matcher()方法生成一个Matcher对象,该Matcher对象可用来在文本中查找重复单词。

示例

使用以上代码,输入以下文本:

hello world world java world java

则程序会输出以下内容:

Duplicate word found: world
Duplicate word found: java

正则表达式详解

\b:匹配单词边界。

(\\w+):匹配一个或多个单词字符。这里使用了括号来将这个子表达式分组,以便在后面进行引用。

\1:引用前面的分组,即重复的单词。

\s+:匹配一个或多个空格字符。

\b:单词边界。

总结

本程序展示了如何用Java语言利用正则表达式来查找重复单词。通过该程序,我们可以更好地理解Java中的正则表达式相关知识。