簡體   English   中英

在Python中對字符串進行分區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM