【发布时间】:2018-05-17 10:25:36
【问题描述】:
我已经从 Python 中休息了很长时间,现在我再次需要你的帮助 :)
我有一个如下所示的数组:
['>lcl|NC_003078.1_gene_1 [gene=lacE] [locus_tag=SM_b21652] [location=1..1275]\n','>lcl|NC_003078.1_gene_2 [gene=lacF] [locus_tag=SM_b21653] [location=complement(22345..23337)]\n']
该数组包含更多条目,所有条目看起来都与提供的示例相似。我想使用正则表达式提取每个元素的一部分。 我要提取的部分是
[location.....]
我使用 Regexr 构建我的正则表达式,并且我尝试过这个:
locationArray=[]
for entry in storageArray:
location.Array.append((re.findall("(\[location=\d*|complement\(\d*\.\.\d*\)\]|\.\.\d*\]))",str(entry))))
print(locationArray)
在浏览器中使用 Regexr 执行此操作时,Regex 似乎可以解决。
预期/期望的输出:
['[location=...]','[location=...]' etc]
实际输出:
[['cE]', '_b21625]','[location=1','..1257]'],
与输入相比,部分已取自gene 和locus_tag。 我不明白,为什么:(我弄错了数组结构?是关于我的正则表达式吗?
帮助表示赞赏!
尽管如此,这不是我最终想要的输出。提取所有位置后,我想对它们进行处理,结果如下:
Start: 1 End: 1275
Start: 22345 End: 23337
由于我什至没有提取位置部分,所以我已经在这里问了。
感谢您的帮助。我也很欣赏解决问题的不同方法。可能,我的方式不是最好的吗?
【问题讨论】:
-
你要做的是
\[location=[^\]]+\]
标签: python arrays regex python-3.x