Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式运行不正常_Python_Regex_Search_Line_Newline - Fatal编程技术网

Python正则表达式运行不正常

Python正则表达式运行不正常,python,regex,search,line,newline,Python,Regex,Search,Line,Newline,我正试图寻找一个染色体编号,它是从一条新的线开始的。以下是相关代码: 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

我正试图寻找一个染色体编号,它是从一条新的线开始的。以下是相关代码:

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即使是在新行上,正则表达式也只匹配应该匹配chr19/sn的chr1。。。。直到下一页

下面是一段它在哪里找到的信息:

4186561/variants/chr19/snps.g

以下是我希望它找到的示例:

chr19 18272190行中的chr19或chrX 13758375行中的chrX


我试过使用,效果很好。

请用四个空格缩进代码。反勾号将在一行中使用,如:foo。输入中18272190在哪里?抱歉,这两个问题现在都已解决@Tichodroma,这只是这条线的一部分,我其实不想找到它。我无法重现你描述的行为。你能不能在一个塑料盒里再放几行?还有,为什么不逐行读文件呢?@Jerry我最后只是逐行读。不幸的是,我删除了旧代码,所以我无法重新发布它,即使我仍然想知道出了什么问题。