Почему эта ошибка: sre_constants.error: нечего повторять в позиции 2? - PullRequest
0 голосов
/ 20 апреля 2019

Ошибка возникает при попытке сопоставить шаблон

pattern = re.compile (r '\ b * \ d {3} \ d {3} - \ d {4} \ b *')def match_exactly (телефон): phone = pattern.fullmatch (телефон), если phone: return phone.group () return None

print (match_exactly)

1 Ответ

0 голосов
/ 20 апреля 2019

\b (граница слова) означает фактически одно из следующих 4 утверждений:

+----------------+-------------------+------------------+
|                |    Before the     |    After the     |
|                | current position  | current position |
+----------------+-------------------+------------------+
| (?<=^)(?=\w)   | Start of string   | Word char        |
| (?<=\w)(?=$)   | Word char         | End of string    |
| (?<=\W)(?=\w)  | Non-word char     | Word char        |
| (?<=\w)(?=\W)  | Word char         | Non-word char    |
+----------------+-------------------+------------------+

Поскольку утверждение (по крайней мере, в случаях, показанных выше) является утверждением, касающимся что до и / или после текущей позиции, это нельзя повторить .

Я пытался выполнить ваш код, ошибка возникает при re.compile инструкции.

Так что вы должны изменить его на:

pattern = re.compile(r'\b\d{3} \d{3}-\d{4}\b')

(без * после \b).

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