【问题标题】:Python regular expression help needed需要 Python 正则表达式帮助
【发布时间】:2021-08-29 22:20:26
【问题描述】:

我试图从 .eml 文件中删除一个链接,但不知何故我总是得到

【问题讨论】:

    标签: python regex web-scraping


    【解决方案1】:

    是的。你说的对。只需从原始文本中删除空格和新行。 例如:

    link = re.findall("CONFIRM<([^\s]+)>", raw_email.replace('\n', '').replace(' ', ''))
    

    【讨论】:

      【解决方案2】:

      基本上你想得到CONFIRM&lt;&gt;之间的一切。

      • 通过将原始网址中的空格替换为空字符串来删除它们。
      • (.*?) 将捕获 CONFIRM&lt;&gt; 之间的所有内容
      • 使用.group(1)获取实际捕获的字符串
      import re
      def get_url(raw):
          raw = raw.replace(' ', '')
          url = re.search('CONFIRM<(.*?)>', raw).group(1)
          return url
      

      对于给定的测试用例。

      raw_url = 'Please click "CONFIRM" below. CONFIRM<https://app.rule.io/subscriber/optIn?token=3DeyJ0eXAiOiJKV1QiLCJhbG= ciOiJIUzI1NiJ9.eyJzdWIiOjEssswrgTA3OCwic3Vic2NyaWJlckZvcm0iOjExOTAsImlzcyI6= Imh0dHBzOi8vYawetgg1bGUuaW8iLCJpYXQiOjE2MjM1NzkwMDYsImV4cCI6MTYyNDE4MzgwNiw= ibmJmIjoxNjIzNTc5MDA2LCJqdGkiOiJEbHMyeDJmcG5pZEhTWXVjwjwje-52uhXlj9efaEwzfI= Rruoiqc3RvUTZ8LgB6ALEAoL4>'
      print(get_url(raw_url))
      

      会输出

      https://app.rule.io/subscriber/optIn?token=3DeyJ0eXAiOiJKV1QiLCJhbG=ciOiJIUzI1NiJ9.eyJzdWIiOjEssswrgTA3OCwic3Vic2NyaWJlckZvcm0iOjExOTAsImlzcyI6=Imh0dHBzOi8vYawetgg1bGUuaW8iLCJpYXQiOjE2MjM1NzkwMDYsImV4cCI6MTYyNDE4MzgwNiw=ibmJmIjoxNjIzNTc5MDA2LCJqdGkiOiJEbHMyeDJmcG5pZEhTWXVjwjwje-52uhXlj9efaEwzfI=Rruoiqc3RvUTZ8LgB6ALEAoL4
      

      【讨论】:

        猜你喜欢
        • 2016-02-01
        • 2021-09-01
        • 2012-11-30
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多