gpt4 book ai didi

python重新匹配文件中的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:21 25 4
gpt4 key购买 nike

我想匹配文件中以 0D 开头且有 15 个 Characters 或只有 15 位数字的所有行。我该怎么做

p_number = re.compile(r'(\d{15})')
f=open(infile)
for l in f:
aa=re.findall(p_number,l)
if aa > 0:
print aa
f.close()

编辑

如果只有模式在行的开头。

最佳答案

要在行的开头 查找匹配项,请使用 re.match 。如果存在 0D 前缀,则此正则表达式匹配所有非空白字符;如果您想匹配更少的字符,请告诉我。

>>> p_number = re.compile(r'(0D[\S]{13}|\d{15})')
>>> for s in ['0Dfannawhoopowe foo',
'foo 012345678901234',
'012345678901234 foo']:
... match = p_number.match(s)
... if match:
... print match.groups()
...
('0Dfannawhoopowe',)
('012345678901234',)

要了解 matchsearchfindall 之间的区别,请参见以下示例。

findall(自然地)找到所有出现的匹配项:

>>> for s in ['0Dfannawhoopowe foo', 
'foo 012345678901234',
'012345678901234 foo']:
... match = p_number.findall(s)
... if match:
... print match
...
['0Dfannawhoopowe']
['012345678901234']
['012345678901234']

搜索 查找字符串中任意位置出现的字符串,而不仅仅是开头。

>>> for s in ['0Dfannawhoopowe foo', 
'foo 012345678901234',
'012345678901234 foo']:
... match = p_number.search(s)
... if match:
... print match.groups()
...
('0Dfannawhoopowe',)
('012345678901234',)
('012345678901234',)

关于python重新匹配文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com