[英]python: extracting (regex) pattern in a file without going through line by line (multiline search)
我可以通过逐行读取 mystring.txt 文件并根据 re.search(r'pattern',line_txt) 方法检查该行来提取特定模式。
以下是mystring.txt
`
Client: //home/SCM/dev/applications/build_system/test_suite_linux/unit_testing
Stream: //MainStream/testing_branch
Options: dir, norm accel, ddl
SubmitOptions: vis, dir, cas, cat
`
使用 python,我可以得到流名称为 //MainStream/testing_branch
import re
with open("mystring.txt",'r') as f:
mystring= f.readlines()
for line in mystring:
if re.search(r'^Stream\:',line):
stream_name = line.split('\t')[1]
print stream_name
不是逐行循环,如何仅使用 re 模块来提取相同的信息?
您可以re.findall
读取文件并使用re.findall
(请注意,如果文件太大,将其加载到主内存将不是一个好主意)
import re
content = open("input_file").read()
print(re.findall("^Stream: (.*)", content, re.M))
是的,您可以使用: re.MULTILINE
和re.search(..)
。
>>> import re
>>> re.search(r'^Stream\:\s([^\n]+)', f.read(), re.MULTILINE).group(1)
'//MainStream/testing_branch'
f = open("mystring.txt").read()
import re
got = re.findall("Stream: .+\n", f)
got = got[0].strip()
print(got.split(": ")[1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.