Скажем, я хочу заменить все совпадения Mr.
и Mr
на Mister
.
Я использую следующее регулярное выражение: \bMr(\.)?\b
для соответствия либо Mr.
, либо просто Mr
. Затем я использую re.sub()
метод для замены.
Меня озадачивает то, что он заменяет Mr.
на Mister.
. Почему это поддерживает точку .
в конце? Похоже, что это не соответствует случаю Mr\.
, а просто Mr
.
import re
s="a rMr. Nobody Mr. Nobody is Mr Nobody and Mra Nobody."
re.sub(r"\bMr(\.)?\b","Mister", s)
Возврат:
'a rMr. Nobody Mister. Nobody is Mister Nobody and Mra Nobody.'
Я также пробовал следующее: но и не повезло:
re.sub(r"\b(Mr\.|Mr)\b","Mister", s)
Мой желаемый результат:
'a rMr. Nobody Mister Nobody is Mister Nobody and Mra Nobody.'
^ ^
no dot this should be kept as it is