繁体   English   中英

如何在python中使用正则表达式?

[英]How to use regular expressions in python?

希望有人能提供帮助,我正在尝试使用正则表达式从模式之后出现的字符串中提取某些内容,但是它不起作用,我不确定为什么。 正则表达式在Linux上可以正常工作...

import re
s = "GeneID:5408878;gbkey=CDS;product=carboxynorspermidinedecarboxylase;protein_id=YP_001405731.1"
>>> x = re.search(r'(?<=protein_id=)[^;]*',s)
>>> print(x)
<_sre.SRE_Match object at 0x000000000345B7E8>

在搜索结果上使用.group()来打印捕获的组:

>>> print(x.group(0))
YP_001405731.1

正如马亭已经指出的那样,你创建了一个匹配的对象。 正则表达式正确。 如果错误,则print(x)将打印None

您可能应该考虑重新编写正则表达式,以便找到所有对,因此您不必为特定的组和硬编码的幕后花絮而烦恼...

import re
kv = dict(re.findall('(\w+)=([^;]+)', s))
# {'gbkey': 'CDS', 'product': 'carboxynorspermidinedecarboxylase', 'protein_id': 'YP_001405731.1'}
print kv['protein_id']
# YP_001405731.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM