Groovy replaceAll, где замена содержит символ доллара?

Я использую replaceAll()в Groovy и получаю ошибку, когда строка замены содержит символ $(который интерпретируется как ссылка на группу регулярных выражений).

Я обнаружил, что мне нужно сделать довольно уродливую двойную замену:

def regexpSafeReplacement = replacement.replaceAll(/\$/, '\\\\\\$')
replaced = ("foo" =~ /foo/).replaceAll(regexpSafeReplacement)

Где:

replacement = "$bar"

И желаемый результат:

replaced = "$bar"

Есть ли лучший способ выполнить эту замену без промежуточного шага?

6
задан Chris Beach 25 May 2012 в 14:27
поделиться