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我最后只是逐行读。不幸的是,我删除了旧代码,所以我无法重新发布它,即使我仍然想知道出了什么问题。