Странное поведение при поиске текста со специальными символами с использованием re.search и re.escape [duplicate]

crash спросил: 11 марта 2019 в 07:41 в: python

На этот вопрос уже есть ответ:

  • Python re.escape and r'\b' gives unexpected results 2 ответа

Это, вероятно, очень простой вопрос, на который уже дан ответ, но он не может найти решение в Интернете.

Я пытаюсь использовать следующий код для поиска слова foo, которое работает:

import re
haystack = 'bar foo, foo is a foobar'
needle = 'foo'
[m.start() for m in re.finditer(r'\b{}\b'.format(re.escape(needle)), haystack)]
# [4, 9]

, в то время как следующее, в поиске foo, (обратите внимание на запятую) не дает того, что я ожидал:

import re
haystack = 'bar foo, foo is a foobar'
needle = 'foo,'
[m.start() for m in re.finditer(r'\b{}\b'.format(re.escape(needle)), haystack)]
# []

что происходит и как я могу искать такие строки со специальными символами (в целом , а не конкретный случай, описанный выше)?

Спасибо


0 ответов