-1
我想從字符串中提取兩個字符。從字符串['data_EL27.dat', 'data.BV256.dat', 'data_BV257.dat']
,我希望輸出['EL', 'BV', 'BV']
。用正則表達式提取字符串的一部分
下面是我使用正則表達式,這似乎對這樣一個簡單的任務過於笨重,我覺得我錯過了一些更好的方式做到這一點。
import re
str = 'data_EL27.dat'
m = re.search(r'(?:data[._])(\w{2})', str)
m.group(1) # 'EL'
我意識到,在這種情況下,我正好可以str[5:7]
但我不希望靠保持相同前綴的長度。
雖然我沒有'使用Python的正則表達式,所以我不知道它的怪癖/快捷方式,這很漂亮的外觀。我假設你可以刪除第一次捕獲,並使用更多像'^ \ w + [._](\ w {2})'作爲正則表達式來減少羅嗦 –
感謝@rbev。我想我也可以擺脫'^ \ w +',只需使用're.search(r'[._](\ w {2})',str).group(1)' –