Почему граница слова не работает в python3? - PullRequest
1 голос
/ 11 апреля 2020

Почему этот работает с модулем регулярных выражений в python.

import re
x = 'if a + b > 0 && a - b < 0:'
print(re.search(r"\s&&\s", x))

output:<re.Match object; span=(12, 16), match=' && '>

А этот нет?

import re
x = 'if a + b > 0 && a - b < 0:'
print(re.search(r"\b&&\b", x))

output:None

1 Ответ

0 голосов
/ 11 апреля 2020

Утверждения границы слова (\b) описывают переход между символами слова и неслова, а не между пробелами и символами без пробелов. Символы слова состоят из букв c и символов подчеркивания (_). Но так как пробел и & не являются словами, \b не может совпадать при этом переходе; вы бы подходили, если бы у & был сосед, похожий на слово, когда вы думали, что ищете соседа, не похожего на слово.

...