gpt4 book ai didi

Python,用于在字符串中获取文件名的正则表达式

转载 作者:行者123 更新时间:2023-11-28 18:35:38 25 4
gpt4 key购买 nike

我有一个包含如下行的文件:

chr5    153584000   153599999   D16073_orphan_reads.fa;709[F18|R11] unkn    1   unkn    2509

chr7 153764000 153775999 D16073_orphan_reads.fa;710[F9|R21],14892_orphan_reads.fa;229[F19|R16] unkn 1 unkn 2510

chr3 127848000 127871999 B15971_orphan_reads.fa;172[F35|R6],D16157-14_orphan_reads.fa;183[F6|R13],14892_orphan_reads.fa;229[F19|R16],USP19283_orphan_reads.fa;336[F10|R6],D15927-14_orphan_reads.fa;176[F11|R10],1007,1007 46 1007 1658

(...)

我想创建一个正则表达式,每一行都采用 fasta 文件 (.fa) 名称(有时我每行有多个文件)。

我想以这样的方式结束:

D16073_orphan_reads.fa

D16073_orphan_reads.fa, 14892_orphan_reads.fa

B15971_orphan_reads.fa, D1615714_orphan_reads.fa, 14892_orphan_reads.fa,USP19283_orphan_reads.fa, D15927-14_orphan_reads.fa

我试过:

 pattern= re.search(".+.[.fa]", line)

问题是文件名的名称非常不规则。唯一的线索是:

-以.fa结尾

-逗号后开始

谢谢

最佳答案

re.findall() 中使用的正则表达式 ([\w-]+\.fa);调用将完成此操作。

import re

data = '''chr5 153584000 153599999 D16073_orphan_reads.fa;709[F18|R11] unkn 1 unkn 2509

chr7 153764000 153775999 D16073_orphan_reads.fa;710[F9|R21],14892_orphan_reads.fa;229[F19|R16] unkn 1 unkn 2510

chr3 127848000 127871999 B15971_orphan_reads.fa;172[F35|R6],D16157-14_orphan_reads.fa;183[F6|R13],14892_orphan_reads.fa;229[F19|R16],USP19283_orphan_reads.fa;336[F10|R6],D15927-14_orphan_reads.fa;176[F11|R10],1007,1007 46 1007 1658
'''

for line in data.splitlines():
filenames = re.findall('([\w|-]+\.fa);', line)
if filenames:
print ', '.join(filenames)

输出:

D16073_orphan_reads.fa
D16073_orphan_reads.fa, 14892_orphan_reads.fa
B15971_orphan_reads.fa, D16157-14_orphan_reads.fa, 14892_orphan_reads.fa, USP19283_orphan_reads.fa, D15927-14_orphan_reads.fa

关于Python,用于在字符串中获取文件名的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680744/

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