Python заменить имя для разных случайных имен - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу заменить предложения с другим именем, и я не знаю, почему это работает

text="hi, my name is angle enrico, how is everything going?"
s = text.replace(r'hi, my name is\s+','')
print(s)

Я хочу получить вывод «как дела?», Но я получаю «привет, меня зовут Угол Энрико, как дела?» Кто-нибудь знает, как это решить?

Ответы [ 4 ]

0 голосов
/ 07 сентября 2018

Вам нужно использовать регулярное выражение и модуль re .

Вы хотите заменить часть строки, начинающуюся с «Привет, меня зовут», за которой следует что-либо (.*), затем запятая и хотя бы один пробел (,\s+).

Если конец предложения также может содержать запятые, вам нужно взять наименьшее возможное «что-нибудь», поэтому вы должны делать это не жадным образом (.*?).

Итак, вы можете сделать:

import re

text="hi, my name is angle enrico, how is everything going?"

s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#how is everything going?

Он также работает со второй запятой в предложении:

text="hi, my name is fred,   I'm fine, thanks!"
s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#I'm fine, thanks!
0 голосов
/ 07 сентября 2018

Попробуйте использовать:

s = text.replace('hi, my name is','')
print(' '.join(s.split()[2:]))

Или:

print(text.split(', ')[2])

Оба воспроизводят:

how is everything going?
0 голосов
/ 07 сентября 2018
>>> text="hi, my name is angle enrico, how is everything going?"
>>> pre = text[text.index("hi, my name is ")+len("hi, my name is "):]
>>> pre
'angle enrico, how is everything going?'
>>> suf = pre[pre.index(", ")+len(", "):]
>>> suf
'how is everything going?'
0 голосов
/ 07 сентября 2018

Похоже, вы пытаетесь использовать синтаксис регулярных выражений в контексте без регулярных выражений. В настоящее время ваш код выполняет поиск буквенной строки hi, my name is\s+, которой явно нет в вашей входной строке.

Что вам нужно сделать, это написать регулярное выражение, которое захватит начало строки, а затем передать его в text.replace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...