我目前正在一个应用程序中工作,我需要在更大的字符串中查找所有出现的字符串,如$ {[0-9-a-zA-Z]}。这是我的方法:
def countVariables(str) {
def pattern = ~'${sss}'
def matcher = str =~ pattern
print matcher.count
}
现在问题。
当我传递像" asidb $ {sss} asodniasndin"这样的字符串时,我得到:
groovy.lang.MissingPropertyException: No such property: sss for class: ConsoleScript83
我认为,鉴于Groovy $ {}中的属性,我遇到了这些冲突。 在这种情况下,我将不得不运行整个文本搜索美元符号并将其替换为其他内容?或者有更简单的方法吗?
问候!
答案 0 :(得分:5)
你是否使用单引号,所以groovy不进行扩展,只给你一个字符串?
即:
countVariables( 'asidb ${sss} asodniasndin' )