[英]Partitioning a string in Python
我有一個格式如下的字符串:
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]
但這沒用
我想我知道一種使用正則表達式的方法,但是內存效率不是很高。 無論如何,我可以使用分區工具執行此操作嗎?
使用split()
,這是完成這項工作的簡單方法。 例如:
'NM' + name2.split('NM')[1]
=> 'NM_147038 range=chr1:92479681-92480629'
或者,如果只有一個定界符,則可以使用index
函數創建字符串的新切片:
name2[name2.index('NM'):]
=> 'NM_147038 range=chr1:92479681-92480629'
使用正則表達式:
import re
re.findall(r'(NM_\d*)', name2)
import re
m = re.search(r"(NM_\d+)\s+range", name2)
if m:
print(m.group(1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.