3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
print re.findall(r'[0-9]+ cm',string)[0]
在哪里string
:
'6\' 3" ( 190 cm )'

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個贊
您的表達(dá)式中有太多不需要和有害的符號。
使用周圍[]做findall匹配單個字符,這說明你得到的輸出。
這需要重新考慮:轉(zhuǎn)義括號,用于\d+匹配一個或多個數(shù)字,以及顯式cm和空格。
創(chuàng)建一個組只匹配數(shù)字+單位,用于search查找組并顯示它。
import re
string = '6\' 3" ( 190 cm )'
pattern = re.compile(r'\( (\d+ cm) \)')
>>> pattern.search(string).group(1)
'190 cm'

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個贊
使用正則表達(dá)式:
import re
s = '6\' 3" ( 190 cm )'
desired_output = re.search(r'\((.*?)\)',s).group(1).lstrip()
print(desired_output)
>>> 190 cm
沒有正則表達(dá)式:
s = '6\' 3" ( 190 cm )'
desired_output = s[s.find("(")+1:s.find(")")].lstrip()
print(desired_output)
>>> 190 cm
添加回答
舉報