Учитывая этот код:Python-Regular Expression
match = re.search(r'b\w+', 'foobar') => found, match.group() == "bar"
Я думаю, что матч группа должна быть «Foobar», так как нет алфавитно-цифровых символов, которые появляются перед или позади него. Почему это не так?
ОК, я понял. Другой вопрос связан с docs.python.org r '\ bfoo \ b' соответствует 'foo', 'foo.', '(Foo)', 'bar foo baz', но не 'foobar' или 'foo3'. Однако это работает для «3foo», но не «foo3». Я не совсем понимаю выражение границы слова в регулярном выражении. – user3718905
Закройте его внутри '^' и '$' для соответствия всей строке. '^ foo $' Здесь [demo] (http://regex101.com/r/oS9pR2/3), и в этом случае нет необходимости использовать границу слова. Для кода нажмите на * Генератор кода * на демо-сайте. – Braj