【发布时间】:2011-10-10 06:32:09
【问题描述】:
早安,
我有以下我们在上一篇文章中建立的 python 正则表达式文件。这是为了提取任何看起来像 'chr' + number + ':' + bignumber ".." + bignumber 的信息(所以看起来像 chr1:100000..120000) 如果将 chr1 切换为 chrX,则正则表达式脚本将不再工作......
这是原始脚本:
# Opens each file to read/modify
infile='myfile.txt'
outfile='outfile.txt'
#import Regex
import re
with open (infile, mode='r', buffering=-1) as in_f, open (outfile, mode='w', buffering=-1) as out_f:
f = (i for i in in_f if '\t' in i.rstrip())
for line in f:
_, k = line.split('\t',1)
x = re.findall(r'^1..100\t([+-])chr(\d+):(\d+)\.\.(\d+).+$',k)
if not x:
continue
out_f.write(' '.join(x[0]) + '\n')
如果我改变了这一行:
x = re.findall(r'^1..100\t([+-])chrX(\d+):(\d+)\.\.(\d+).+$',k)
我无法具体提取看起来像 chrX 等的内容... 你也应该知道有些行可能是空的!
请帮忙 :) 谢谢
【问题讨论】:
-
你说改的那行完全一样
-
您对
123100␉+前缀只字未提。会不会是问题?请显示匹配和不匹配的 k(使用print repr(k))的内容。
标签: python regex string file extract