我有以下列,其中包括电子邮件主题标题:
Subject
EXT || Transport enquiry
EXT || RE: EXTERNAL: RE: 0001 || Copy of enquiry
EXT || FW: Model - Jan
SV: [EXTERNAL] Calculations
我想要达到的是:
Subject
Transport enquiry
0001 || Copy of enquiry
Model - Jan
Calculations
为此,我使用下面的代码,它只考虑了我传递的第一个正则表达式,而忽略了其余的
def clean_subject_prelim(text):
text = re.sub(r'^EXT \|\| $' , '' , text)
text = re.sub(r'EXT \|\| RE: EXTERNAL: RE:', '' , text)
text = re.sub(r'EXT \|\| FW:', '' , text)
text = re.sub(r'^SV: \[EXTERNAL]$' , '' , text)
return text
df['subject_clean'] = df['Subject'].apply(lambda x: clean_subject_prelim(x))
为什么这行不通,我错过了什么?
2条答案
按热度按时间dxxyhpgq1#
您可以使用
请参见regex demo。
因为使用了
re.X
((?x)
),所以应该转义文本空格和#
字符,或者只使用\s*
或\s+
来匹配零个/一个或多个空格。bvjxkvbb2#
去掉第一个表达式中的
$
符号,并将一些正则表达式从位置切换过来,如下所示: