python - Python Gmail 解析和正则表达式
问题描述
我的 Python 函数扫描 Gmail 中的股票期权符号。到目前为止,它使用以下代码解析主题行。相反,我希望它解析消息正文,因为通常有太多符号不适合主题。类似的正则表达式可能会起作用,但是包含符号的行在消息正文中重复了两次(请参阅附件示例)。因此,正则表达式一旦到达行尾字符就应该停止。
我将感谢您重新利用正则表达式的帮助!
def parse_symbols_from_email_to_list(email_msg):
if email_msg['Subject'].find("Following list of symbols were added") != -1:
symbols_list = re.findall(r'\.[A-Z]+[A-Z0-9]+\.*[0-9]+', email_msg['Subject'])
symbols_list = list(dict.fromkeys(symbols_list))
return symbols_list
解决方案
将您的正则表达式更改为:.*?\.(.*),.*\.(.*)\..*\nA
它将捕获第一个:
直到第一个换行符,然后是字母A
使用您的代码,它看起来像:
def parse_symbols_from_email_to_list(email_msg):
if email_msg['Subject'].find("Following list of symbols were added") != -1:
symbols_list = re.match(':.*?\.(.*),.*\.(.*)\..*\nA', email_msg['Subject'])
symbols_list = [symbols_list[1], symbols_list[2]]
return symbols_list
推荐阅读
- java - Spring Boot java.lang.IllegalStateException:Bean 名称“用户”的 BindingResult 和普通目标对象都不能用作请求属性
- spring - 使用 Spring JmsMessagingTemplate 的自定义 MessageConverter 无法按预期工作
- android - 如何在recyclerview中找到项目的宽度?
- neo4j - 具有指定端点的可变长度路径上的密码查询
- django - CSS文件加载但在Django项目中不起作用
- synchronization - NServiceBus - 如何确保 SagaData 在工作服务器之间同步?
- sas - SAS 分层抽样
- r - 左连接并仅从右表中选择匹配列
- openmdao - 强制设计变量界限的最严格方法是什么?
- javascript - 递归地创建新的 Promise