在Python中对字符串进行分区

时间:2013-03-14 18:39:56

标签: python string set

我有一个格式为

的字符串
name = '>n263590 | AK138667 | mRNAlike lncRNA |'

所以当我想分区时,我使用了字符串:

name = name.partition(' |')[0]

我尝试对格式的字符串使用相同的概念:

name2 = '>mm10_refGene_NM_147038 range=chr1:92479681-92480629'

我想要的区域以'NM'开头,直到数字结束

#i want the output to be name2 = 'NM_147038'

所以我试过

name2 = name2.partition('NM','range')|[0]

但它无效

我认为我知道使用正则表达式来实现它的方法但它的内存效率并不高。 无论如何我可以使用分区工具执行此操作吗?

3 个答案:

答案 0 :(得分:3)

使用split(),这是一种简单的方法。例如:

'NM' + name2.split('NM')[1]
=> 'NM_147038 range=chr1:92479681-92480629'

或者,如果只有一个分隔符,则可以使用index函数创建字符串的新切片:

name2[name2.index('NM'):]
=> 'NM_147038 range=chr1:92479681-92480629'

答案 1 :(得分:2)

使用正则表达式:

import re

re.findall(r'(NM_\d*)', name2)

答案 2 :(得分:1)

import re

m = re.search(r"(NM_\d+)\s+range", name2)
if m:
   print(m.group(1))