Regex 在Python中使用正则表达式从文件中提取多行 我想用Python提取13:45和09和13:50:10(包括空白行和空格)之间的行,并将其存储在变量中以供以后使用。我不知道使用哪个正则表达式来捕获所有这些字符。

Regex 在Python中使用正则表达式从文件中提取多行 我想用Python提取13:45和09和13:50:10(包括空白行和空格)之间的行,并将其存储在变量中以供以后使用。我不知道使用哪个正则表达式来捕获所有这些字符。,regex,python-2.7,Regex,Python 2.7,编写一个正则表达式语言模式,描述要匹配的内容: 行首,数字,数字,冒号,数字,数字,冒号,数字,数字 捕捉下一位 再看看这一切,知道该在哪里停下来 然后正则表达式将其从字符串中与选项M(多行)匹配,该选项允许匹配每行/任何行的行开始,以及S(单线)匹配,该选项允许结转行结束。(还有I(IGNORECASE),因为我已经在那里有了它,但您可能不需要它) 联机尝试:您可以应用lookbehind断言来确定结束边界的开始、先行和结束,如下所示: s = """13:45:09 HEY HOW AR

编写一个正则表达式语言模式,描述要匹配的内容:

  • 行首,数字,数字,冒号,数字,数字,冒号,数字,数字
  • 捕捉下一位
  • 再看看这一切,知道该在哪里停下来
然后正则表达式将其从字符串中与选项
M
(多行)匹配,该选项允许匹配每行/任何行的行开始,以及
S
(单线)匹配,该选项允许
结转行结束。(还有
I
(IGNORECASE),因为我已经在那里有了它,但您可能不需要它)


联机尝试:

您可以应用lookbehind断言来确定结束边界的开始、先行和结束,如下所示:

s = """13:45:09 HEY HOW ARE YOU

     I AM FINE

13:50:10 OK THEN

     Bye"""

import re

m = re.search('^\d\d:\d\d:\d\d(.*?)(?=\d\d:\d\d:\d\d)', s, re.I + re.M + re.S)
print(m.groups()[0])
重新导入

m=re.search('(?非常感谢,它很有帮助:)
s = """13:45:09 HEY HOW ARE YOU

     I AM FINE

13:50:10 OK THEN

     Bye"""

import re

m = re.search('^\d\d:\d\d:\d\d(.*?)(?=\d\d:\d\d:\d\d)', s, re.I + re.M + re.S)
print(m.groups()[0])
import re

m = re.search('(?<=\d\d:\d\d:\d\d)(.*?)(?=\d\d:\d\d:\d\d)', s, re.DOTALL).group()
print(m)