Python正则表达式不能正常工作

2024-09-30 12:13:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着寻找一个新的染色体号码。以下是相关代码:

chrp = re.compile(r"^chr[^\t]+", re.MULTILINE)
for v in vcfs:
    vcffile = open(v, "r")
    vcf = vcffile.read()
    last_i = 0
    while chrp.search(vcf, last_i) is not None:
        find = chrp.search(vcf, last_i).group()  #next chrom
        print find
        last_i = vcf.index(find, last_i)  #index of chrom
        print vcf[last_i:10 + last_i]

但是,这会打印出:

chr1
chr19/snps

这方面的问题是:

1)“chr19/snps…”不是在新行上,而是在斜杠后面的一行中间

2)即使是在新行上,regex也只匹配“chr1”,它应该匹配“chr19/sn….”,直到下一个选项卡

以下是一个片段:

4186561/variants/chr19/snps.g

下面是一个我想让它找到的例子:

chr19chr19 18272190chrXchrX 13758375

我试过使用https://pythex.org/,在那里效果很好。你知道吗


Tags: researchindexfindlastvcfprintchr1

热门问题