我現在試圖從字符串中提取大小,這是一個非常常見的模式,我猜:AxBxC其中A,B,下用X分離(可能是X具有空間也),是尺寸(整數或浮點數):Python正則表達式:正確的方法來提取分離的數字(AxBxC - > [A,B,C])
import re
s = 'zzz 3062 0.2 aaa 15.8x20.2x12.2875 mm'
我期待獲得在線訂購三個數字:15.8,20.2,12.2875] 唯一的工作方法我現在是醜陋的:
r1 = re.findall('(\d+\.?\d*)\ *x\ *', s)
r2 = re.findall('\ *x\ *(\d+\.?\d*)', s)
r1.extend(r2)
print(set(r1))
{'15.8', '20.2', '12.2875'}
有沒有什麼辦法可以使用單一健壯正則表達式提取這些數字? 謝謝。
不會'\ d + \ * \ d +'夠嗎?這應該得到除了小數點以外的任何數字。 對於例如你找到[3062,0.2,15.8,20.2,12.2875] – Zinki
@Zinki號將得到那些'3062'和'0.2'了。 –
也許're.findall(R '(\ d [\ d] *)×(\ d [\ d] *)×(\ d [\ d] *)',S)'?這些數字總是三倍,不是嗎?看[正則表達式演示](https://regex101.com/r/0K5v5P/1)。 –