Как удалить определенные части строки в Python - PullRequest
0 голосов
/ 02 ноября 2019

Я пытался удалить определенные слова с тем же шаблоном, что и определенное слово рядом с ним.

doc = ["super man good weather", "bet man nice car", "iron man awesome soup"]

Я хочу удалить 'super man', 'bet man', 'iron man',эти строки содержат одно и то же слово «человек», и я хочу удалить слово перед тем же словом «человек» одновременно.

Я пробовал это, но не получилось.

for string in doc:
    prep = re.sub('.* man =', '', string)

Ответы [ 3 ]

0 голосов
/ 02 ноября 2019

Попробуйте это .. Должно работать, используя re

[re.sub('[a-zA-Z]+\s{1}man', '', txt).strip() for txt in doc]
0 голосов
/ 02 ноября 2019

Мой подход будет

re.sub('\w+ man ', '', t)
0 голосов
/ 02 ноября 2019

Не элегантный способ сделать это. Но служит цели.

doc = ["super man good weather", "bet man nice car", "iron man awesome soup", "a manned mission to mars"]

keyword = " man " # to make sure that you don't remove words that contain man as substring

doc = [string.split(keyword)[1].strip() if keyword in string else string for string in doc]

print(doc)

Выход

['good weather', 'nice car', 'awesome soup', 'a manned mission to mars']

Смотрите это в действии здесь

на основе регулярных выраженийрешение

import re
doc = ["man super man good weather", "a bet man nice car", "iron man awesome man soup", "a manned mission to mars"]
doc = [re.sub('\w+ man ', '', string).strip() for string in doc]
print(doc)

Выход

['man good weather', 'a nice car', 'soup', 'a manned mission to mars']

См. это в действии здесь

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