我可以通过逐行读取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模块提取相同的信息?
答案 0 :(得分:0)
是的,您可以re.MULTILINE
使用re.search(..)
。
>>> import re
>>> re.search(r'^Stream\:\s([^\n]+)', f.read(), re.MULTILINE).group(1)
'//MainStream/testing_branch'
答案 1 :(得分:0)
您可以一次性阅读该文件并使用re.findall
(请注意文件是否太大,将其加载到主内存不是一个好主意)
import re
content = open("input_file").read()
print(re.findall("^Stream: (.*)", content, re.M))
答案 2 :(得分:0)
f = open(“mystring.txt”)。read()
导入重新
got = re.findall(“Stream:。+ \ n”,f)
got = got [0] .strip()
print(got.split(“:”)[1])