ahmed ben
ahmed ben

Reputation: 141

find all substring that starts and ends with specific characters

I have to find all substring is a string $a$ that starts with M and ends with _ I tried

a = 'ICQLEFAKNASFSVSNVSKKNGEFSHAHEQDQNLRLIARQR_RSADGTPNKVNTSNVRCSTPIFGNNPFAQSLAHREYGHEGENVQCRPCGSLPSRKCQRNVHPKQQQQQQHQHCHRNSA_APAIRAAQAAGGDNSSRSEK_RAAAARIPVNDDSNMETSLALESRRRNHQSIEPLVRG_PCRQCNNRFSCTWAWRTM_PISNEAHIDLVELASLERADNC_NRPKYR_GLQPYHGNCSTLFK_IAGMSIFYHNTKILKCFM_RETL_F_NYVDN_VGILELL_KTWNS_SSSFLALNNKL_YTNKNLCNS_NVAPKLIYKN_IYFVS_QIA'$

b=re.findall('^M_$',a)

it gives an empty list I want the output to be like that

['METSLALESRRRNHQSIEPLVRG_', 'M_', 'M_']

Upvotes: 2

Views: 3060

Answers (1)

NPE
NPE

Reputation: 500257

Here is one way to do it:

>>> re.findall('M.*?_', a)
['METSLALESRRRNHQSIEPLVRG_', 'M_', 'MSIFYHNTKILKCFM_']

Or, if the results must not contain embedded M characters:

>>> re.findall('M[^M]*?_', a)
['METSLALESRRRNHQSIEPLVRG_', 'M_', 'M_']

Upvotes: 6

Related Questions