Как удалить конкретное слово из строки?
Мне нужно удалить конкретное слово из строки.
Но я считаю, что метод python strip не может распознать упорядоченное слово. Просто удалите все символы, переданные параметру.
Например:
>>> papa = "papa is a good man"
>>> app = "app is important"
>>> papa.lstrip('papa')
" is a good man"
>>> app.lstrip('papa')
" is important"
Как я могу удалить указанное слово с помощью python?
Ответы
Ответ 1
Используйте str.replace
.
>>> papa.replace('papa', '')
' is a good man'
>>> app.replace('papa', '')
'app is important'
В качестве альтернативы используйте re
и используйте регулярные выражения. Это позволит удалить ведущие/конечные пробелы.
>>> import re
>>> papa = 'papa is a good man'
>>> app = 'app is important'
>>> papa3 = 'papa is a papa, and papa'
>>>
>>> patt = re.compile('(\s*)papa(\s*)')
>>> patt.sub('\\1mama\\2', papa)
'mama is a good man'
>>> patt.sub('\\1mama\\2', papa3)
'mama is a mama, and mama'
>>> patt.sub('', papa3)
'is a, and'
Ответ 2
Самый простой способ - просто заменить его пустой строкой.
s = s.replace('papa', '')
Ответ 3
Вы также можете использовать regexp с re.sub
:
article_title_str = re.sub(r'(\s?-?\|?\s?Times of India|\s?-?\|?\s?the Times of India|\s?-?\|?\s+?Gadgets No'',
article_title_str, flags=re.IGNORECASE)
Ответ 4
Предоставляя вам знать значение индекса начала и конца каждого слова, которое вы хотите заменить в массиве символов, и вы хотите заменить этот конкретный фрагмент данных, вы можете сделать это следующим образом.
>>> s = "papa is papa is papa"
>>> s = s[:8]+s[8:13].replace("papa", "mama")+s[13:]
>>> print(s)
papa is mama is papa
Кроме того, если вы хотите сохранить исходную структуру данных, вы можете сохранить ее в словаре.
>>> bin = {}
>>> s = "papa is papa is papa"
>>> bin["0"] = s
>>> s = s[:8]+s[8:13].replace("papa", "mama")+s[13:]
>>> print(bin["0"])
papa is papa is papa
>>> print(s)
papa is mama is papa