Какой синтаксис для заполнителя в Scala заменяет регулярное выражение? - PullRequest
3 голосов
/ 28 ноября 2011

Так что я мог бы написать:

val res = """(\d*).*""".r.replaceAllIn(s,"""\1""")

Пока я получаю буквальное «1» вместо захваченной группы.

Заранее спасибо.

1 Ответ

6 голосов
/ 28 ноября 2011

Попробуйте: $1 вместо \1.

Регламент Scala использует java.util.regex внизу (по крайней мере на JVM). Теперь, если вы посмотрите replaceAll на Java документах, вы увидите это:

Обратите внимание, что при замене следует использовать обратную косую черту () и знаки доллара ($) Строка может привести к тому, что результаты будут другими, чем если бы трактуется как буквенная замещающая строка. Знаки доллара можно лечить в качестве ссылок на захваченные подпоследовательности, как описано выше, и обратные косые черты используются для экранирования буквенных символов в замене строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...