Regex: Как заменить строковым литералом "\ 1"? - PullRequest
2 голосов
/ 23 июля 2010

У меня есть строка, скажем r"a". Я хочу заменить каждые r"a" на строку r"\1", но мой движок регулярных выражений этого не понимает.

Я пробовал:

  • r"\1" - вылетает (невозможно сопоставить группу 1, потому что там есть нет группы 1)
  • r"\\1" - вылетает (не знаю почему)

Это ограничение моего (собственного) движка регулярных выражений или это общая проблема? Есть ли элегантный способ ее решения? (Я мог бы, например, заменить "a" на "/ 1", а затем StrReplace ("/", r "\") ... но это не nice !)

1 Ответ

2 голосов
/ 23 июля 2010

Правильный способ будет использовать r"\\1" в качестве строки замены.Поэтому, если ваш собственный движок / язык регулярных выражений задыхается на \\, вы должны исправить эту ошибку.

Если вы посмотрите на свой пример, вам вовсе не нужен движок регулярных выражений.Но, возможно, пример проще, чем фактическое требование ...

...