Groovy等同于以下Perl代码是什么?
my $txt = "abc : groovy : def"; if ($txt =~ / : (.+?) : /) { my $match = $1; print "MATCH=$match\n"; # should print "MATCH=groovy\n" }
我知道TMTOWTDI(包括常规的Java方式) – 但是做什么是“Groovy”呢?
这是一种方法,但感觉有点笨拙 – 特别是数组符号(m [0] [1])感觉有点奇怪。有更好的办法吗?如果没有,请描述m [0] [1]背后的逻辑。
def txt = "java : groovy : grails" if ((m = txt =~ / : (.+?) :/)) { def match = m[0][1] println "MATCH=$match" }
m [0]是第一个匹配对象。
m [0] [0]是匹配的一切。
m [0] [1]是这场比赛的第一个捕获。
m [0] [2]是这场比赛中的第二次捕获。
原文链接:https://www.f2er.com/regex/357407.htmlm [0] [0]是匹配的一切。
m [0] [1]是这场比赛的第一个捕获。
m [0] [2]是这场比赛中的第二次捕获。
根据我所读的(我不在Groovy中编程或有一个副本方便),给出
def m = "barbaz" =~ /(ba)([rz])/;
m [0] [0]将为“bar”
m [0] [1]将为“ba”
m [0] [2]将为“r”
m [1] [0]将是“baz”
m [1] [1]将“ba”
m [1] [2]将为“z”
我不能不知道我是否正确,所以我下载了groovy并写了一个例子:
def m = "barbaz" =~ /(ba)([rz])/; println "m[0][0] " + m[0][0] println "m[0][1] " + m[0][1] println "m[0][2] " + m[0][2] println "m[1][0] " + m[1][0] println "m[1][1] " + m[1][1] println "m[1][2] " + m[1][2]