我想通过我的电子邮件收件箱解析,并找到营销电子邮件与优惠券代码在他们提取的代码,从他们的逻辑,我写的作品只有单一类型的数据。
def extract_promo_code(body):
# Use regular expressions to find promo code
promo_code_pattern = r'(?i)(?:Enter\s+Code|Enter\s+promo)(?:[\s\n]*)([A-Z0-9]+)'
match = re.search(promo_code_pattern, body)
if match:
promo_code = match.group(1)
# Remove any non-alphanumeric characters from the promo code
promo_code = re.sub(r'[^A-Z0-9]', '', promo_code)
return promo_code
else:
return None
以下是几个样本,我想从中提取优惠券代码:
1.“在结账时输入代码。* 优惠有效期至2023年10月6日下午11:59 CT MKEA15EMYZGP8W”
1.“输入代码JSB20GR335F4结束2023年9月21日,在11:59pm CT。*”
我希望代码捕捉的第一个促销代码后的文字“输入代码”或“输入促销”,其中包括一个数字和字母的混合,即使有文本和促销代码之间的换行符和空格。
上面的代码在示例2中运行良好,但没有捕获示例1中的代码。
1条答案
按热度按时间fnatzsnv1#
你可以使用(你可以调整模式,我用的促销代码至少有10个字符)(regex101 demo):
图纸: