Анализ строки Groovy, игнорируя «$» или любой символ (ps: нет контроля над входными данными) - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь заменить определенное слово, скажем, password на ******* из строки, содержащей такие символы, как $ и \n в Groovy.

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

я пытался str.replaceAll("password","**")

дает:

недопустимый символ тела строки после знака доллара; решение: либо экранируйте буквальный знак доллара "\ $ 5", либо заключите в скобки выражение значения "$ {5}" @ строка 2, столбец 8. afdmas $

def str="""hello how  
you$
password
doing"""

ожидаемое о / п:

hello how  
you$
**
doing

1 Ответ

0 голосов
/ 13 мая 2019

Непонятно, почему у вас нет доступа к входным данным, потому что вы используете строковый литерал в примере, и ошибка, которую вы получаете, тоже из этого примера. В этом случае вы можете использовать строки Groovy в одинарных кавычках , но без интерполяции . Или, если необходима интерполяция, вы можете использовать строки slashy или долларовый slashy , которые дополнительно не требуют экранирования обратной косой черты:

def str='''"hello how
you$ password doing'''
def str=/"hello how
you$ password doing/
def str=$/"hello how
you$ password doing/$

* Форматирование такое же, как в OP

...