Regex 为什么赢了';“t Groovy荣誉”;或;我的正则表达式中的实例?
众所周知,正则表达式中的“Regex 为什么赢了';“t Groovy荣誉”;或;我的正则表达式中的实例?,regex,groovy,Regex,Groovy,众所周知,正则表达式中的“|”是“或”运算符。所以当我运行这个: static void main(String[] args) { String permission = "[fizz]:[index]" if((permission =~ /\[fizz|buzz]:\[.*]/).matches()) { println "We match!" } else { println "We don't match!" } } …
|
”是“或
”运算符。所以当我运行这个:
static void main(String[] args) {
String permission = "[fizz]:[index]"
if((permission =~ /\[fizz|buzz]:\[.*]/).matches()) {
println "We match!"
} else {
println "We don't match!"
}
}
…那么为什么它会打印“我们不匹配!”?正则表达式
\[fizz | buzz]:\[.]
匹配:
-文字\[fizz
后跟[
fizz
-或运算符|
-匹配文字buzz]:\[
buzz]:[
-除换行符以外的任何字符,尽可能多地使用*
-文字]
]
if((permission =~ /\[(?:fizz|buzz)]:\[[^\]]*]/).matches()) {
在这里,\[(?:fizz | buzz)]:\[^\]*]
将匹配一个[
,然后fizz
或buzz
而不捕获单词,然后]:[
,[^\]*
将匹配0个或更多字符,但a
,然后
检查一下。也可在以下网址查阅:
有人提醒我今天不要将答案作为评论发布。邮寄。