我在下面的模板中有示例数据
'Q31 P2852 Q25648793',
'Q31 P2852 Q25648794',
'Q31 P3916 concept893',
'Q31 P2633 Q1115035',
'Q31 P298 BEL',
'Q31 P1448 Belgick\u00E',
'Q31 P1448 K\u00F6nigreic',
结果应该是这样的
'Q31 P2852 Q25648793',
'Q31 P2852 Q25648794',
'Q31 P2633 Q1115035'
所以,我只需要用这种格式的数据
format = Q[number] P[number] Q[number]
或者用正则表达式
pattern = r'Q[0-9]*\sP[0-9]*\sQ[0-9]*'
我已经尝试了一个字符串,它的工作,但当我申请在txt文件,它没有工作
data ='./sample/tes'
with open(data) as infile:
for line in infile:
if line.startswith('Q'):
if re.match(r'Q[0-9]*\sP[0-9]*\sQ[0-9]*', line):
print(line)
else:
print('not ok')
else:
pass
编辑
我试图使用re.compile
、re.findall
、re.fullmatch
但它只读取第一行。我知道为什么。而且,它并不真正理解我应该使用哪个re
我仍然在学习正则表达式,我无法解决上述问题。如有任何建议,将不胜感激。顺便说一句,真正的文件是1.5 TB
非常感谢
我认为你也应该做一个:
以及@RomanPerekhrest在评论中提出的建议
相关问题 更多 >
编程相关推荐