FAQ - RegExp Add comment to Wiki View in Wiki Edit Wiki page Printable Version

RegExp

matcher.matches() returns false

Why does this code fail?

Because you think you do something like "Oh dear it contains the word!", but you're confusing matches with find

From Javadoc: http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Matcher.html#matches()

public boolean matches()

Attempts to match the entire region against the pattern.

...

So "/\.groovy/" is just a subsequence.

You must use

What is the difference between =~ and ==~ ?

Pattern, Matcher ?

A pattern is not very useful alone. He's just waiting input to process through a matcher.

Matcher can say a lot of thing to you:

  • if the entire input sequence matches the pattern, with matcher.matches() ;
  • if just a subsequence of the input sequence matches the pattern, with matcher.find().

A matcher with /groovy/ pattern finds a matching subsequence in the 'my groovy buddy' sequence.

On the contrary the whole sequence doesn't match the pattern.

Application: to filter a list of names.

A little tilde headache ? Remember like this

~

the pattern

=~

roughly as the pattern (easy to write)

==~

more than roughly, exactly as the pattern (think hard...)

 

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