鉴于以下Groovy:
static void main(String[] args) {
String permission = "[fizz]:[index]"
String regex = "[fizz]:[*]"
if((permission =~ regex).matches()) {
println "We match!"
} else {
println "We don't match!"
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:" 我们不匹配! ".这怎么可能?!?
您需要转义方括号,并且要匹配index,您需要使用.*,这意味着"任何char,任意次".此外,groovy的slashy字符串语法有助于:
String permission = "[fizz]:[index]"
String regex = /\[fizz]:\[.*]/
assert (permission =~ regex).matches()
assert permission ==~ regex
Run Code Online (Sandbox Code Playgroud)
更新:您可以通过两次转义方括号来使用双引号字符串:
String regex = "\\[fizz]:\\[.*]"
Run Code Online (Sandbox Code Playgroud)