Regular Expressions Add comment to Wiki View in Wiki Edit Wiki page Printable Version

Groovy supports regular expressions natively using the ~String (e.g. ~/foo/) expression, which creates a compiled Java Pattern object from the given pattern string. Groovy also supports the =~ (create Matcher) and ==~ (returns boolean, whether String matches the pattern) operators.

For matchers having groups, matcher[index] is either a matched String or a List of matched group Strings.

Since a Matcher coerces to a boolean by calling its find method, the =~ operator is consistent with the simple use of Perl's =~ operator, when it appears as a predicate (in 'if', 'while', etc.). The "stricter-looking" ==~ operator requires an exact match of the whole subject string. It returns a Boolean, not a Matcher.

Regular expression support is imported from Java. Java's regular expression language and API is documented here in the Pattern JavaDocs.

More Examples

Goal: Capitalize words at the beginning of each line:

Goal: Capitalize every word in a string:

Add .toLowerCase() to make the rest of the words lowercase

Gotchas

How to use backreferences with String.replaceAll()

GStrings do not work as you'd expect:

Produces an error like the following:

[] illegal string body character after dollar sign:

solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line []

Solution:

Use ' or / to delimit the replacement string:

 

Search

Results of your search request can come from various sources: the Groovy website itself, the JIRA issues, the API documentation, as well as a few other interesting Groovy-related blogs.

  By  -  pages  -  views  - last modified