Почему граница слов не работает в python3?
Почему этот работает с модулем регулярных выражений (пере) в 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 ответ
Решение
Утверждения границ слова (\b
) описывают переход между словесными и несловесными символами, а не между пробелами и не пробелами. Символы слова представляют собой буквенно-цифровые символы плюс подчеркивание (_
). Но поскольку и пространство, и&
не являются символами слов, \b
не может совпадать при этом переходе; вы бы соответствовали, только если&
у вас был сосед, похожий на слово, когда вы думали, что ищете соседа, не похожего на слово.