【问题标题】:Python- re.search() // Match start and end but do not include either in match resultPython- re.search() // 匹配开始和结束但不包括在匹配结果中
【发布时间】:2021-10-01 08:43:26
【问题描述】:

我的意图是在“开始”和“结束”变量之间获取所有变量。 目前正在努力了解如何应用过滤器来获取不包括开始和结束条件的组。

start = 'melons'
end = 'strawberry'
s = 'banana apples melons+cucumber+strawberry grapes'

r = re.search('', s)

print(r.group(1)) 
#print = +cucumber+

【问题讨论】:

    标签: python python-3.x python-re


    【解决方案1】:

    可以通过以下方法实现:

    import re
    start = 'melons'
    end = 'strawberry'
    s = 'banana apples melons+cucumber+strawberry grapes'
    
    r = re.search(rf'{start}(.*?){end}', s)
    
    print(r.group(1)) 
    

    输出:

    +cucumber+
    

    【讨论】:

      【解决方案2】:

      如果您刚开始使用 Regex,那么我建议您使用 this 工具。它非常有用,可以帮助您编写自己的正则表达式。它还会将您的语句编译成您选择的语言。

      同时,你可以使用melons(.*)strawberry这样的语句:

      import re
      
      regex = r"melons(.*)strawberry"
      
      matches = re.search(regex, "banana apples melons+cucumber+strawberry grapes")
      
      print(matches.groups()[0])
      # +cucumber+
      

      【讨论】:

      • 谢谢,我检查了两个答案,这和事先创建参数一样好。使用 rf'' 可以让我以最小的努力将它添加到字符串中。感谢这个工具,它对理解模式参数的功能有很大帮助。
      • 没问题,希望对您有所帮助!
      猜你喜欢
      • 2015-07-06
      • 2023-03-19
      • 2021-04-14
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多