RegExpExample.java Source code

Java tutorial

Introduction

Here is the source code for RegExpExample.java

Source

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExpExample {

    public static void main(String args[]) {
        String fileName = "RETestSource.java";

        String unadornedClassRE = "^\\s*class (\\w+)";
        String doubleIdentifierRE = "\\b(\\w+)\\s+\\1\\b";

        Pattern classPattern = Pattern.compile(unadornedClassRE);
        Pattern doublePattern = Pattern.compile(doubleIdentifierRE);
        Matcher classMatcher, doubleMatcher;

        int lineNumber = 0;

        try {
            BufferedReader br = new BufferedReader(new FileReader(fileName));
            String line;

            while ((line = br.readLine()) != null) {
                lineNumber++;

                classMatcher = classPattern.matcher(line);
                doubleMatcher = doublePattern.matcher(line);

                if (classMatcher.find()) {
                    System.out.println("The class [" + classMatcher.group(1) + "] is not public");
                }

                while (doubleMatcher.find()) {
                    System.out.println("The word \"" + doubleMatcher.group(1) + "\" occurs twice at position "
                            + doubleMatcher.start() + " on line " + lineNumber);
                }
            }
        } catch (IOException ioe) {
            System.out.println("IOException: " + ioe);
            ioe.printStackTrace();
        }
    }
}