gpt4 book ai didi

python - 如何仅打印具有五个或更多正则表达式匹配项的行?

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

我正在尝试在 Python 中使用正则表达式逐行解析大型制表符分隔的文本文件,并打印该行包含 5 个或更多 0/11/1

我的脚本即将完成,但我正在努力处理 5 个或更多实例。

这将打印一个匹配的行。

import re  
f = open ("infile.txt", "r")
out = open("outfile.txt", "w")

for line in f:
if re.match(r"(.*)(0|1)/(1)(.*)", line):
print >> out, line,

要仅打印具有 5 个或更多匹配项的行,我尝试了 findallfinditer,如下所示,但它们不起作用:

for line in f:  
x = len(re.findall(r"(.*)(0|1)/(1)(.*)", line)):
if x > 5:
print >> out, line,

谁能帮我解决这个问题吗?

以下是文本文件中一行的示例(文件中的所有空格都是制表符):

X 6529 . C A,G PASS AC=4,2;AF=0.6777 1/1:0,20 0/1:0,16 0/1:0,16 0/0:4,16 0/0:3,1 

最佳答案

您可以使用 {5,} 来匹配模式 5 次或更多次

import re
f = open ("data.txt", "r")
out = open("dataout.txt", "w")

for line in f:
if re.match(r"(.*([01]/1.*){5,}", line):
print >> out, line,

关于python - 如何仅打印具有五个或更多正则表达式匹配项的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15845693/

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