Java如何在正则表达式中匹配重复单词?
在Java编程中,如何在正则表达式中匹配重复单词?
以下示例显示了如何使用regex.Matcher类的p.matcher()方法和m.group()方法在正则表达式中搜索重复的单词。
package com.yiibai;
import java.util.Scanner;
import java.io.*;
import java.util.regex.*;
import java.util.ArrayList;
public class SearchingDuplicateWords {
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如何在正则表达式中匹配重复单词?的更多相关文章
- Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un
ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素 Java 实例 以下实例 ...
- Java 去除 ArrayList 集合中的重复元素
// One practice package Collection; import java.util.ArrayList; import java.util.Iterator; // 去除 Arr ...
- Java版统计文件中的每个单词出现次数
正则表达式之Pattern和Matcher,请参见转载博客 http://www.cnblogs.com/haodawang/p/5967219.html 代码实现: import java.i ...
- 剑指Offer编程题(Java实现)——数组中的重复数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...
- java之坑-----List中的重复添加同一对象
java中List的add方法不检查List中是否含有已加入项 java中List的add方法不检查List中是否含有已加入项 java中List的add方法不检查List中是否含有已加入项 重要事情 ...
- js正则表达式中匹配反引号
直接用反引号就可以了~ /`[\W\w\*]+`\.`[\W\w\*]+`/
- Java 去除List列表中的重复项
/** * Remove list duplicate item * * @param srcList * @return */ private static ArrayList<Resolve ...
- 关于 Java正则表达式中的Possessive数量修饰词的理解
关于 Java正则表达式中的Possessive数量修饰词的理解 正则表达式对于数量限定符如 ?, + , *, {n, m} 的匹配默认是贪婪模式,比如: a.*b 匹配 acbab 的结果是 ...
- 关于Java正则和转义中\\和\\\\的理解
定义 一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. 转义就是指转换该字符的原本意义,从而变成另外的意义. \作为Java的转义字符 1.在j ...
随机推荐
- Nexus6p:正在下载系统更新,没有进度
今天想把手头的测试机更新至Android 8.1, 挂上VPN之后,在设置里点击系统更新,等了半天还是这个样子... 进度条死活不动,我也是醉了,后来找到了一个可行的办法: 先从设置里面的安全和位置性 ...
- (原创)舌尖上的c++--相逢
引子 前些时候,我在群里出了一道题目:将变参的类型连接在一起作为字符串并返回出来,要求只用函数实现,不能借助于结构体实现.用结构体来实现比较简单: template<typename... Ar ...
- 【Mysql】Fedora下 Mysql 安装及配置
1.安装 Mysql Server # yum install mysql mysql-server 可以到mysql官网去下载,我下载的是通用版本.你需要下载下面四个文件就可以了. mysql-cl ...
- 多媒体文件格式之TS
[时间:2016-07] [状态:Open] TS流是MPEG-2标准中定义一种用于直播的码流结构,具有很好的容错能力.所有跟TS相关的标准可以从ISO/IEC_13818-1中找到. 通常TS流的后 ...
- 查询Oracle性能差的、正在执行或执行过的SQL语句
查找前十条性能差的sql. SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS, COMMAND_TYPE,DISK_READS,sql_te ...
- spring batch中控制step的走向
1.顺序执行step: <job id="job"> <step id="stepA" parent="s1" next= ...
- 3. 支持向量机(SVM)拉格朗日对偶性(KKT)
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...
- Spring boot 报错 Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
在实际开发中修改别人的代码,发现了这个报错,后来发现是因为pom.xml里面 只要将注释掉的部分注释掉就好了.
- [转]bootstrap的table插件动态加载表头
原文地址:https://blog.csdn.net/abubu123/article/details/78060321 bootstrap的table属性已经很熟悉了,最近遇到一个问题,犹豫每个列表 ...
- mariadb是替代MySQL的好方式
像Oracle这样成熟稳定的数据库,足以支撑海量数据的存储与查询了?为什么还需要数据切片呢?的确,Oracle的DB确实很成熟很稳定,但是高昂的使用费用和高端的硬件支撑不是每一个公司能支付的起的.试想 ...