regex - Groovy 正则表达式和通配符权限

标签 regex groovy

鉴于以下 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/

相关文章:

javascript - Meteor 路由器中的可选参数

regex - 通过正则表达式重命名文件,大写问题

grails - Grails如何对包含嵌套域类的JSON对象进行JSON化?

groovy - 有没有办法通过 Jenkins 脚本控制台使用 groovy 脚本清理 Jenkins Worflowjob 工作区?

jenkins - 执行 DSL 时 Jenkins 2.0 中的 java.lang.ClassNotFoundException : java. lang$Enum

python - Pandas 按文本列中的子字符串过滤行

javascript - 电话号码验证正则表达式

R - 使用正则表达式查找/替换换行符

search - 使用Grails和Groovy分割字符串并为每个单词搜索一个域

gradle - 在Gradle中替换为Ant的zipfileset