Я пытаюсь заменить Hello
в строке s
другим словом, если слово НЕ находится между кавычками, такими как "" или ". Давайте представим, что слово замены - Мэтт,
Это ввод:
s = 'Hello How Are you, "hey Hello", \'ney Hello\'. Hello I\'m great'
Желаемый вывод:
s = 'Matt How are you, "hey Hello", \'ney Hello\'. Matt I\'m great '
Я искал и нашел этот код, и с небольшими изменениями мне удалось успешно заменить слово, но оно работает только с '', а не с '' включенным
import re
def replace_method(match):
if match.group(1) is None:
return match.group()
return match.group().replace("Hello", "Matt")
s = 'Hello How Are you, "hey Hello", \'ney Hello\'. Hello I\'m great'
output = re.sub(r"'[^']*'|([^']*)", replace_method, s)
print(output)
Edit:
Спасибо за ответы, но я упустил объяснить что-то важное (что я впервые заметил в свою защиту после выполнения успешного кода), «очевидно», я не хочу этого предложения:
s = "Hellona, how are you"
стать
s = "Markna, how are you"
Итак, регулярное выражение должно включать то, что слово, которое я пытаюсь заменить, не заменяется NUMBERS или LETTERS .