鉴于以下 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!"
}
}
结果是:“我们不匹配!”。 这怎么可能?!?
最佳答案
您需要转义方括号,并且为了匹配 index
,您需要使用 .*
,这意味着“任何字符,任意次数”。此外,groovy 的斜杠字符串语法也有帮助:
String permission = "[fizz]:[index]"
String regex = /\[fizz]:\[.*]/
assert (permission =~ regex).matches()
assert permission ==~ regex
更新:您可以通过转义方括号两次来使用双引号字符串:
String regex = "\\[fizz]:\\[.*]"
关于regex - Groovy 正则表达式和通配符权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879203/