#python #string
#python #строка
Вопрос:
В моих текстовых данных у меня есть встраивание на основе текста для изображений формата
x = "[cid:image001.jpg@01D67C81.30D4DBD0] [cid:image004.jpg@01D67C84.31D4DBD3] Regards, John"
Я использовал метод startswith , но безрезультатно.
text = ' '.join(x for x in s.split() if not x.startswith('[cid:'))
Затем я использовал регулярное выражение
cid:(.*?)$(.*?)
он сопоставлен и сгруппирован в индекс 1, все после cid:
то, что я намеревался сделать, это получить выход только в качестве Regards, John
Итак, я пытался создать что-то в строке отрицания на основе регулярного выражения с условием, равным чему-либо, начинающемуся с «[cid: » до первого пробела.
Комментарии:
1. Я думаю, что ваш
startswith
код должен был сработать. Какой результат вы ожидаете, что вы получили вместо этого?2.
re.sub(r'[cid:.*?]', '', x)
3. Извините. Я не удалял s с помощью x.
Ответ №1:
Я скомпилировал ваш код только с изменением x for x in s.split()
на x for x in x.split()
, потому что я не знал, что s
это такое, и это сработало. Мне даже не нужно было использовать ваше регулярное выражение. Он отлично работал, выдавая выходные Regards, John
данные.
Скомпилированный мной код:
x = "[cid:image001.jpg@01D67C81.30D4DBD0] [cid:image004.jpg@01D67C84.31D4DBD3] Regards, John"
text = ' '.join(x for x in x.split() if not x.startswith('[cid:'))
print(text)
Напечатано: Regards, John