\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
).