Просто чтобы явно объяснить , почему re.search("\btwo\b", x)
не работает, это потому, что \b
в строке Python является сокращением для символа возврата.
print("foo\bbar")
fobar
Таким образом, шаблон "\btwo\b"
ищет backspace, затем two
, за которым следует еще один backspace, которого нет в искомой строке (x = 'one two three'
).
Чтобы разрешить re.search
(или compile
) интерпретировать последовательность \b
как границу слова, либо избегайте обратной косой черты ("\\btwo\\b"
), либо используйте необработанную строку для создания шаблона (r"\btwo\b"
).