繁体   English   中英

如何从内容类型HTML / Text(在Gmail中)搜索python 2.7中可变长度8个字母数字的模式

[英]How to search for a pattern which is variable length 8 alphanumeric in python 2.7 from content type HTML/Text (in Gmail)

我是python的新手。 我正在尝试从gmail收件箱中找到一种模式。 能够以html格式而非纯文本格式获取Gmail内容。 另外,我无法识别临时密码的模式(我需要提取该模式)。 密码的长度为8,并且是从@#$ -_!0-9a-zA-Z中随机选择的。密码在span标记中。 这是从gmail中获取的部分内容,该内容位于变量“ body”中:

Helvetica;font-size: 14px;font-weight: normal;text-align: ce=
nter;"> <span style=3D"font-size:28px">orPYG$XV</span><!----></td> </tr> </=
tbody> </table> </td> </tr> </tbody> </table> <!--[if gte mso 9]></td>

我的python代码要提取的部分:

passwordd =re.findall(r'<span style=3D"font-size:28px">+.*</span>', str(body), re.I|re.M)
lookkk = re.findall(r'(?<![A-Za-z0-9]))', str(passwordd))
print(str(lookkk))

哪里:
正文:是我从HTML收件箱以HTML格式获取的电子邮件内容
密码:是创建以从电子邮件文本中提取内容的变量
lookkk:是我正在寻找的最后一个密码,长度为8

密码能够获取包括<span...span>的密码。 我想排除<span...span> 我怎样才能做到这一点? 另外,是否可以从gmail获取纯文本,而不是html形式的文本。 我看了很多论坛,但做不到。

您需要在正则表达式中包含一个捕获组,并用括号将它们声明为:

pswrd = re.findall(r'<span style=3D"font-size:28px">+(.*)</span>', str(body), re.I|re.M)

为了使此更准确,而不是使用.*捕获所有内容,您还可以进行更精确的搜索,使其与期望的单词完全匹配: [@#$_!0-9a-zA-Z]{8} ,因此仅一个表达式足以找到该单词。

在regex101上尝试您的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM