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)