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