Скажем, я хочу заменить все совпадения 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
