我正在使用正则表达式来分析文件中的某些模式。但是,如果我的数据中间有一些空格,我最终会得到错误的数据。我有这种格式的数据:
067 000100 A
067 000200 B
067 000300 C
067 000400 D
067 000500 E
067 000600 F
我正在尝试获取前两个字符串,第二个字符串的中间两位数字和类似这样的值:(在某些情况下,我可能有7位数字,这就是为什么在这种情况下,有一个正则表达式可以再增加一位数字的原因结束)
('67 000100 ', '01', 'A')
我正在使用以下正则表达式:
qnum = r'067'
subq = r' .00' #using . because I am not sure if there's one space or two!
fmt = r'(?sm)^(' + qnum + subq + r'(..)...)\s*(.*?)\s*$'
#data is a string with all those values and \n
result = re.findall(fmt,data, re.I)
但最后,我得出以下结论:
('67 000100 ', '01', 'A')
('67 000200 ', '02', 'B')
('67 000300 ', '30', 'C')
如何获得正确的标题,以便中间只有一个空格,中间还有正确的中间数字?
.
并不意味着一个可选字符;它只是意味着一个角色。而不是空间.
,而您想要\s+
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句