我有包括參數號的字符串_參數號:如何匹配字符串或字符開頭的Python
dir = 'a1.8000_b1.0000_cc1.3000_al0.209_be0.209_c1.344_e0.999'
我需要選擇的參數後面的數字,即
par='be'
- >需要0.209par='e'
- >需要0.999
我想:
num1 = float(re.findall(par + '(\d+\.\d*)', dir)[0])
但par='e'
將匹配0.209
和0.999
,所以我試圖將參數與字符串的開頭或下劃線匹配在一起:
num1 = float(re.findall('[^_]'+par+'(\d+\.\d*)', dir)[0])
這沒因某種原因工作。
有什麼建議嗎?謝謝!
這工作。謝謝!但是,你能解釋一下嗎?:實際上是這樣嗎? – user1638145
@ user1638145:讓我們將事物分組,如正常括號,但內容不會被放入捕獲組。數字匹配組('(\ d。\ d *)')另一方面,* *捕獲並因此返回作爲第一個值;你已經使用'[0]'索引選擇了它。如果我沒有使用'?:'指標,你會爲每個匹配返回2個值:'''',''''或'['','1.8000']。例如,用於「a」。 –
我想你需要在正則表達式的前面加上一個「r」......「r」(\ d + \。\ d *)''。 – jszakmeister