2024-03-29 05:21:00 发布
网友
我可以使用什么正则表达式来匹配基因列表字符串中的基因(粗体):
基因表:F59A7.7;T25D3.3;F13B12.4;cysl-1;cysl-2;cysl-3;cysl-4;F01D4.8
我试过:基因列表:((((\w+)(\w+);)+*但它只捕获最后一个基因
您可以使用以下选项:
\s([^;\s]+)
Demo
([^;\s]+)
\s
>>> s = 'GENE_LIST: F59A7.7; T25D3.3; F13B12.4; cysl-1; cysl-2; cysl-3; cysl-4; F01D4.8' >>> re.findall(r'\s([^;\s]+)', s) ['F59A7.7', 'T25D3.3', 'F13B12.4', 'cysl-1', 'cysl-2', 'cysl-3', 'cysl-4', 'F01D4.8']
更新
其实要简单得多:
[^\s;]+
然而,首先使用substring只获取你需要的部分(基因,不包括GENELIST)
演示:regex demo
给出:
>>> s="GENE_LIST: F59A7.7; T25D3.3; F13B12.4; cysl-1; cysl-2; cysl-3; cysl-4; F01D4.8"
可以使用Python字符串方法执行以下操作:
>>> s.split(': ')[1].split('; ') ['F59A7.7', 'T25D3.3', 'F13B12.4', 'cysl-1', 'cysl-2', 'cysl-3', 'cysl-4', 'F01D4.8']
对于正则表达式:
(?<=[:;]\s)([^\s;]+)
或者,在Python中:
>>> re.findall(r'(?<=[:;]\s)([^\s;]+)', s) ['F59A7.7', 'T25D3.3', 'F13B12.4', 'cysl-1', 'cysl-2', 'cysl-3', 'cysl-4', 'F01D4.8']
您可以使用以下选项:
Demo
([^;\s]+)
将包含所需的子字符串,后跟空格(\s
)更新
其实要简单得多:
然而,首先使用substring只获取你需要的部分(基因,不包括GENELIST)
演示:regex demo
给出:
可以使用Python字符串方法执行以下操作:
对于正则表达式:
Demo
或者,在Python中:
相关问题 更多 >
编程相关推荐