簡體   English   中英

使用正則表達式提取字符串

[英]extracting strings using regular expression

我有以下字符串:

  1. 低質量蛋白質:半胱氨酸蛋白酶 5 樣 [Solanum pennellii]
  2. 預測:低質量蛋白質:未鑒定的蛋白質 LOC107059219 [Solanum pennellii]
  3. XP_019244624.1 預測:過氧化物酶 40 樣 [Nicotiana attenuata]
  4. RVW92024.1 來自轉座子 TNT 1-94 [Vitis vinifera] 的逆轉錄病毒相關 Pol 多蛋白
  5. 假設蛋白 VITISV_035070 [Vitis vinifera]

如何從上面的字符串中提取下面的字符串?

  1. 半胱氨酸蛋白酶5樣
  2. 未表征的蛋白質 LOC107059219
  3. 過氧化物酶40樣
  4. 來自轉座子 TNT 1-94 的逆轉錄病毒相關 Pol 多蛋白
  5. 假設蛋白質 VITISV_035070
s = '''LOW QUALITY PROTEIN: cysteine proteinase 5-like  [Solanum pennellii]
PREDICTED: LOW QUALITY PROTEIN: uncharacterized protein LOC107059219 [Solanum pennellii]
XP_019244624.1 PREDICTED: peroxidase 40-like [Nicotiana attenuata]
RVW92024.1 Retrovirus-related Pol polyprotein from transposon TNT 1-94 [Vitis vinifera]
hypothetical protein VITISV_035070 [Vitis vinifera]'''

import re
rgx = '(:?)\s([\w\s-]+)\s(\[.+\])'

list1 = []
for m in re.findall(rgx, s):
    list1.append(m[1])

print(list1)

Output

['cysteine proteinase 5-like ',
 'uncharacterized protein LOC107059219',
 'peroxidase 40-like',
 'Retrovirus-related Pol polyprotein from transposon TNT 1-94',
 'hypothetical protein VITISV_035070']

查看https://regex101.com/r/HATKMa/1了解詳細說明。

我認為這個問題不需要正則表達式。 我更喜歡以下解決方案,因為它很容易理解

st = "PREDICTED: LOW QUALITY PROTEIN: uncharacterized protein LOC107059219 [Solanum pennellii]"
st.split(":")[-1].split("[")[0].strip()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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