import re
Date = "10"
regex = r"(?<=Number of Days are %s days : \n\n)(.+\n{0,2})+?((?=Number of Days)|(?=$))" % (Date)
test_str = ("""Number of Days are 4 days :
john: 12
jade: 452
kent: 3542
Number of Days are 10 days :
john: 34
jade: 765
kent: 9473
Number of Days are 11 days :
john: 34
jade: 765
kent: 9473""")
matches = re.search(regex, test_str)
if matches:
print (matches.group())
我的正则表达式如下:
r"(?<=Number of Days are %s days : \n\n)(.+\n{0,2})+?((?=Number of Days)|(?=$))"
第一部分:
(?<=Number of Days are %s days : \n\n)
这看起来是否有您的搜索字符串Number of Days are %s days%s正在引用您的变量日期
第二部分:
(.+\n{0,2})+
查找结尾有0或2行新行的任何字符。你知道吗
第三部分:
?((?=Number of Days)|(?=$))
这将检查是否有任何Number of Days或者它是字符串的结尾,如果是这样的话,将阻止第二部分获得更多匹配项。你知道吗
用新行来做这件事有点复杂,用拆分的任何字符都会容易得多,但这就是我得到的:
我的正则表达式如下:
第一部分:
这看起来是否有您的搜索字符串
Number of Days are %s days
%s
正在引用您的变量日期第二部分:
查找结尾有0或2行新行的任何字符。你知道吗
第三部分:
这将检查是否有任何
Number of Days
或者它是字符串的结尾,如果是这样的话,将阻止第二部分获得更多匹配项。你知道吗相关问题 更多 >
编程相关推荐