- Java Programming Examples
- Example - Home
- Example - Environment
- Example - Strings
- Example - Arrays
- Example - Date & Time
- Example - Methods
- Example - Files
- Example - Directories
- Example - Exceptions
- Example - Data Structure
- Example - Collections
- Example - Networking
- Example - Threading
- Example - Applets
- Example - Simple GUI
- Example - JDBC
- Example - Regular Exp
- Example - Apache PDF Box
- Example - Apache POI PPT
- Example - Apache POI Excel
- Example - Apache POI Word
- Example - OpenCV
- Example - Apache Tika
- Example - iText
- Java Tutorial
- Java - Tutorial
- Java Useful Resources
- Java - Quick Guide
- Java - Useful Resources
How to match duplicate words in a regular expression using Java
Problem Description
How to match duplicate words in a regular expression?
Solution
Following example shows how to search duplicate words in a regular expression by using p.matcher() method and m.group() method of regex.Matcher class.
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); } } }
Result
The above code sample will produce the following result.
Original text is: Hello hello Hello there there past pastures After Remove duplicates: Hello there past pastures
java_regular_exp.htm
Advertisements