Comment

CharSequence inputStr = "a b";
String patternStr = "a b";

// Compile without comments
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();    // true

// Compile with comments
pattern = Pattern.compile(patternStr, Pattern.COMMENTS);
matcher = pattern.matcher(inputStr);
matchFound = matcher.matches();            // false

// Use COMMENTS but include a character class with a space
patternStr = "a  [\ ]  b";
pattern = Pattern.compile(patternStr, Pattern.COMMENTS);
matcher = pattern.matcher(inputStr);
matchFound = matcher.matches();            // true


// Use an inline modifier
matchFound = pattern.matches("a b", inputStr);           // true
matchFound = pattern.matches("(?x)a b", inputStr);       // false
matchFound = pattern.matches("(?x)a [\ ] b", inputStr); // true
matchFound = pattern.matches("(?x)a \s b", inputStr);   // true
matchFound = pattern.matches("a (?x:  b   )", inputStr); // true

// Tabs and newlines in the pattern are ignored as well
matchFound = pattern.matches("(?x)a tn \s b", inputStr); // true

// Read pattern from file
try {
    File f = new File("pattern.txt");
    FileReader rd = new FileReader(f);
    char[] buf = new char[(int)f.length()];
    rd.read(buf);
    patternStr = new String(buf);

    matcher = pattern.matcher(inputStr);
    matchFound = matcher.matches();            // true
} catch (IOException e) {
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.