#java #regex
#java #регулярное выражение
Вопрос:
Я пытаюсь запомнить правильную нотацию для выполнения поиска-замены совпадений регулярных выражений в Java.
Допустим, у меня есть строка
String s = "My name is ''Eric'' and I have a bee called ''Eric''
and a fish called ''Wanda''."
Я хочу сделать что-то вроде следующего:
s.replaceAll("''$$''", "$$");
Для справки: Меня зовут Эрик, и у меня есть пчела по имени Эрик и рыбка по имени Ванда.
Но я знаю, что $$ — это неправильное обозначение, чтобы фиксировать все, что есть в » и использовать его для замены найденного совпадения.
Какую именно нотацию я здесь ищу?
Заранее спасибо.
-Дэйв.
Ответ №1:
s.replaceAll("''(.*?)''", "$1");
Комментарии:
1. Вы уверены, что синтаксис работает? regular-expressions.info говорит, что Java поддерживает только синтаксис $ для обратных ссылок.
2. Я ничего не гарантирую, поскольку сам этого не пробовал. Но
Pattern
Javadoc заявляетn Whatever the nth capturing group matched
3. Да, это не \ 1 или 1. Я проведу несколько тестов и обращусь к приведенному ниже.
4. .Замените все(«»(.*?)»», «$1») дает мне то, что я хотел. Приветствия.