【问题标题】:Python - Extract text that starts with a particular sub-stringPython - 提取以特定子字符串开头的文本
【发布时间】:2021-07-01 14:41:04
【问题描述】:

我正在使用 Python Regex 从电子邮件中提取某些文本

我在下面尝试过:

import re

email = """Hi John,

I am emailing regarding REQ-12345 and REQ-66442.

Many Thanks,

Jane"""


re.findall(r'(?=REQ-)',email)

预期输出:['REQ-12345', 'REQ-66442']

实际输出:['', '']

我也尝试了多种不同的方法,但都没有给出正确的结果。

我如何获得所需的输出?

【问题讨论】:

    标签: python python-3.x regex


    【解决方案1】:

    预期输出:['REQ-12345', 'REQ-66442']

    如果REQ-后面总是跟1个或多个数字(0123456789)就足够了,那么就不要使用零长度断言(这对于在某事之后或之前抓取文本而没有得到那个东西很有用)

    p>
    import re
    text = "I am emailing regarding REQ-12345 and REQ-66442."
    print(re.findall(r'REQ-[0-9]+',text))
    

    输出

    ['REQ-12345', 'REQ-66442']
    

    【讨论】:

      【解决方案2】:
      import re
      
      email = """Hi John,
      
      I am emailing regarding REQ-12345 and REQ-66442.
      
      Many Thanks,
      
      Jane"""
      
      
      re.findall(r'(REQ-\d+)',email)
      
      ['REQ-12345', 'REQ-66442']
      

      【讨论】:

      • 非常感谢。工作准确。 :)
      • @excelman 太好了,如果它解决了您的问题,请不要忘记接受答案,否则,它将不断出现在未解决的问题列表中。
      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 2020-05-11
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      相关资源
      最近更新 更多