Search code examples
regexstringgroovypatternsyntaxexception

What's wrong with my Groovy regex?


Here's my code:

String myRegex = "*cow"
String name = "SHIRACOWPEPPER"
name = name.toLowerCase()

if(!name || name.matches(myRegex)) {
    return true
}

When I run this I get a PatternSyntaxException: Dangling meta character '*' near index 0 *cow ^ error. Ideas?


Solution

  • The * is a meta character which means 'zero or more times' the thing you matched before, but in this case there is nothing to match. This should probably work:

    String myRegex = ".*cow"
    String name = "SHIRACOWPEPPER"
    name = name.toLowerCase()
    
    if(!name || name.matches(myRegex)) {
        return true
    }
    

    For more information see the documentation