- Java 编程示例
- 示例 - 首页
- 示例 - 环境
- 示例 - 字符串
- 示例 - 数组
- 示例 - 日期和时间
- 示例 - 方法
- 示例 - 文件
- 示例 - 目录
- 示例 - 异常
- 示例 - 数据结构
- 示例 - 集合
- 示例 - 网络
- 示例 - 线程
- 示例 - 小程序
- 示例 - 简单 GUI
- 示例 - JDBC
- 示例 - 正则表达式
- 示例 - Apache PDF Box
- 示例 - Apache POI PPT
- 示例 - Apache POI Excel
- 示例 - Apache POI Word
- 示例 - OpenCV
- 示例 - Apache Tika
- 示例 - iText
- Java 教程
- Java - 教程
- Java 有用资源
- Java - 快速指南
- Java - 有用资源
使用 Java 在正则表达式中匹配重复单词的方法
问题描述
如何在正则表达式中匹配重复单词?
解决方案
以下示例展示了如何通过使用 regex.Matcher 类的 p.matcher() 方法和 m.group() 方法在正则表达式中搜索重复单词。
import java.util.Scanner;
import java.io.*;
import java.util.regex.*;
import java.util.ArrayList;
public class dupl {
public static void main(String[] args) {
ArrayList <String> manyLines = new ArrayList<String>();
ArrayList <String> noRepeat = new ArrayList<String>();
try {
String s1 = "Hello hello Hello there there past pastures ";
Scanner myfis = new Scanner(s1);
while(myfis.hasNext()) {
String line = myfis.nextLine();
String delim = System.getProperty("line.separator");
String [] lines = line.split(delim);
for(String s: lines) {
if(!s.isEmpty() && s != null) {
manyLines.add(s);
}
}
}
if(!manyLines.isEmpty()) {
System.out.print("Original text is:\n");
for(String s: manyLines) {
System.out.println(s);
}
}
if(!manyLines.isEmpty()) {
for(String s: manyLines) {
String result = s.replaceAll("(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+", "$1");
noRepeat.add(result);
}
}
if(!noRepeat.isEmpty()) {
System.out.print("After Remove duplicates:\n");
for(String s: noRepeat) {
System.out.println(s);
}
}
} catch(Exception ex) {
System.out.println(ex);
}
}
}
结果
以上代码示例将产生以下结果。
Original text is: Hello hello Hello there there past pastures After Remove duplicates: Hello there past pastures
java_regular_exp.htm
广告