Сопоставьте вхождения $ {variable} в тексте с помощью регулярных выражений - PullRequest
1 голос
/ 23 марта 2012

В настоящее время я работаю в приложении, где мне нужно найти все вхождения строк, таких как $ {[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 $ {} являются свойствами, у меня возникают эти конфликты.В этом случае мне придется запустить весь текст в поисках знака доллара и заменить его на что-то другое?Или есть более простой способ сделать это?

С уважением!

1 Ответ

5 голосов
/ 23 марта 2012

Используете ли вы одинарные кавычки, чтобы groovy не выполнял расширение и просто выдавал вам строку?

Т.е.:

countVariables( 'asidb ${sss} asodniasndin' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...