регулярное выражение python "\ 1"

Может ли кто-нибудь сказать мне, что означает «\ 1» в следующем регулярном выражении в Python?

re.sub(r'(\b[az]+) \1', r'\1', 'cat in the the hat') 

Благодаря!

4 Solutions collect form web for “регулярное выражение python "\ 1"”

\1 эквивалентно re.search(...).group(1) , первое выражение, ограниченное скобками внутри регулярного выражения.

Это также забавный факт, часть причины того, что регулярные выражения значительно медленнее на Python и других языках программирования, чем требуется для теории CS .

Первая \1 означает первую группу – то есть первое скобленое выражение (\b[az]+)

Из документа \number

«Соответствует содержимому группы с тем же номером. Группы нумеруются начиная с 1. Например, (. +) \ 1 соответствует« the »или« 55 55 », но не« thethe »(обратите внимание на пробел после группа)»

В вашем случае он ищет повторяющееся «слово» (ну, блок строчных букв).

Второй \1 является заменой для использования в случае mtach, поэтому повторяющееся слово будет заменено одним словом.

\1 – это обратная связь. Он соответствует, что когда-либо соответствовало вашим скобкам, в этом случае

Вы в основном говорите

  • сопоставить пустую строку в начале слова (\ b)
  • сопоставить алфавитные символы от az, один или несколько раз
  • снова совместить термин в скобках

cat in ('' '' '') 'the' hat

Из документов python для модуля re :

\number

Соответствует содержимому группы с тем же номером. Группы нумеруются начиная с 1. Например, (.+) \1 соответствует 'the the' или « '55 55' , но не 'thethe' (обратите внимание на пробел после группы). Эта специальная последовательность может использоваться только для соответствия одной из первых 99 групп. Если первая цифра числа равна 0 или число равно 3 восьмеричным цифрам, это не будет интерпретироваться как групповое совпадение, а как символ с восьмеричным номером. Внутри '[' и ']' класса символов все числовые escape-последовательности рассматриваются как символы.

Ваш пример в основном такой же, как и в документах.

  • Регулярное выражение для замены некоторых точек запятыми в комментариях клиентов
  • Соответствие регулярного выражения Python в условных выражениях
  • регулярное выражение, чтобы исключить тире и подчеркивание в качестве последнего символа
  • Какое свойство возвращает регулярное выражение, используемое при вызове re.compile?
  • Обратное форматирование строки Python: генерирование dict из строки с именованными параметрами
  • Как сделать отрицательный взгляд Python менее жадным?
  • Regex Python добавляет символы после определенного слова
  • Регулярное выражение Python соответствует тексту в одинарных кавычках, игнорируя экранированные кавычки (и вкладки / новые строки)
  • Python - лучший язык программирования в мире.