группа python re.match: число после \ число - PullRequest
2 голосов
/ 04 марта 2012

В шаблоне сопоставления Python, как мне сопоставить буквенную цифру, например 1, после обратной ссылки по номеру, например \1?

Я попробовал синтаксис \g<1>, который доступен в шаблонах замещения для этой цели, но он не работает в моем шаблоне соответствия.

У меня есть большая проблема, которую я хочу решить с помощью функции, которая выполнит следующую несколько необычную задачу. Задача состоит в том, чтобы построить шаблоны динамически, чтобы каждый шаблон совпадал с последовательностями цифр, которые имеют повторяющиеся цифры в определенных позициях и конкретные цифры в оставшихся позициях.

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

Я заметил, что мне не нужен синтаксис \g<1>.Вместо этого я могу использовать один из нескольких методов, чтобы отделить числовую обратную ссылку, например \2, от цифры, такой как 9, которая следует за ней.Вот три таких метода:

  • группа без захвата (?:\2)9
  • ненужное количественное определение с помощью одного \2{1}9
  • с использованием ненужного в противном случае класса символовсодержать только цифру, которая следует за обратной ссылкой \2[9]
2 голосов
/ 04 марта 2012

Поместите цифру, которую вы хотите сопоставить, буквально в классе символов \1[1] или в отдельной группе \1(1), чтобы скобка или скобки отделяли цифру от обратной ссылки.

...