【发布时间】:2020-03-03 10:59:15
【问题描述】:
我正在使用 Python 正则表达式来获取已解析电子邮件的正文,该正文可能不包含任何内容或可能看起来像这样:
一些连贯的句子。
lalskjfa;ljkd
其他东西
几行电子邮件签名等等
哈哈哈哈哈哈
我想要电子邮件正文中的所有内容,不包括签名行开启器及其内容。
我基本上撕掉了除签名电子邮件之外的所有内容,以便重新格式化以进行报告。
我试过了:
负前瞻:
\G(\A\z|.*\n*(?!_))正向预测:
\G(\A\z|.*\n*(?=_))
似乎两者都没有起作用。
消极的前瞻,它似乎抓住了一切。有了积极的展望,它似乎什么也没抓住。
我希望实现的输出是这个文本:
一些连贯的句子。
lalskjfa;ljkd
其他东西
【问题讨论】:
-
可能是
re.search(r'(?sm)\A(.*?)\n_+$', text).group(1)?如果这个正则表达式“有效”,我不会使用正则表达式。您可以只阅读所有行,直到仅包含下划线的行。 -
感谢您的回答。由于这个过程的构建方式,我无法访问 python group(1) 而不改变我们程序的很多内容,我不热衷于搞砸。
-
这都是关于分隔符的。如果是双引号,那么
".*?"但与 LF 等的数量一起使用并不好。这是一个非常糟糕的分隔符。 -
感谢您的有用提示,我得以尝试:
(?sm)\A(.*?)\n(?=_),它似乎抓住了我需要的东西。 -
这里_的作用是什么
标签: python regex python-2.7