У нас есть повторяющиеся слова, такие как мистер и миссис в тексте. Мы хотели бы добавить пробел до и после ключевых слов Mr и Mrs. Но слово Mr становится повторяющимся в Mrs. Пожалуйста, помогите в решении вопроса:
Ввод:
Hi ThisМистер СэмЗдравствуйте, это MrsPamela.Mr.Sam, о чем вы звоните? Миссис Памела, у меня к вам вопрос.
import re
s = "Hi This is Mr Sam. Hello, this is Mrs.Pamela.Mr.Sam, what is your call about? Mrs. Pamela, I have a question for you."
words = ("Mr", "Mrs")
def add_spaces(string, words):
for word in words:
# pattern to match any non-space char before the word
patt1 = re.compile('\S{}'.format(word))
matches = re.findall(patt1, string)
for match in matches:
non_space_char = match[0]
string = string.replace(match, '{} {}'.format(non_space_char, word))
# pattern to match any non-space char after the word
patt2 = re.compile('{}\S'.format(word))
matches = re.findall(patt2, string)
for match in matches:
non_space_char = match[-1]
string = string.replace(match, '{} {}'.format(word, non_space_char))
return string
print(add_spaces(s, words))
Текущий результат:
Hi This is Mr .Sam. Hello, this is Mr sPamela. Mr .Sam, what is your call about? Mr s.Pamela, I have a question for you.
Ожидаемый результат:
Hi This is Mr .Sam. Hello, this is Mrs Pamela. Mr .Sam, what is your call about? Mrs .Pamela, I have a question for you.