2
В одном из моих классных классов я стараюсь с совпадением шаблонов, но без успеха.Groovy pattern maching issue
def TestMap = ['/test.domain.local/ig':'serverx']
nodeName = 'test.domain.local'
for (kv in TestMap){
if(nodeName != null && ("${nodeName}" =~ "${kv.key}")) {
println "${kv.value}";
}
}
но как-то, если состояние неправда, и я не понимаю, почему? обратите внимание, что это не полные коды. Основное внимание здесь уделяется сопоставлению с образцом.
Заранее за вашу помощь.
Спасибо. я смотрел на http://mrhaki.blogspot.ch/2009/09/groovy-goodness-matchers-for-regular.html, и в приведенных примерах это похоже на: утверждают, что «Groovy rocks!» = ~/Groovy/// = ~ в условном контексте возвращает boolean. поэтому в моем случае «nodename» = ~ Образец и согласно вам это Pattern = ~ 'nodename' и он тоже работает. Не могли бы вы поделиться более подробной информацией? –
Он всегда работает таким образом '<что вам нужно проверить> = ~ <шаблон, который должен быть сопоставлен (регулярное выражение)>', например. '" lol "= ~/lol /'. – Opal
Тогда «$ {nodeName}» = ~ $ {kv.key} должно быть правильным. 'test.domain.local' = ~ /test.domain.local/ig не так ли? В вашем первом ответе вы сказали, что мне нужно изменить «$ {kv.key}" = ~ "$ {nodeName}" /test.domain.local/ig = ~ 'test.domain.local' , и это, похоже, работает для по какой-то причине. –