Python正则表达式从字符串中获取权重值

Python正则表达式从字符串中获取权重值,python,regex,Python,Regex,我有这些绳子 Gold Standard Whey 10.20 KG Optimum Gold Standard Whey kg10,20 Optimum Gold Standard Whey kg. 10.20 Optimum Gold Standard Whey 10.20kg. Optimum 我需要使用正则表达式使用python提取10.20或10,20 我已经用这个正则表达式测试过了 ((kg\.|KG\.|Kg\.|kg|KG|Kg){1}[ ]{0,}\d{1,}?(\.|\

我有这些绳子

Gold Standard Whey 10.20 KG Optimum
Gold Standard Whey kg10,20 Optimum
Gold Standard Whey kg.  10.20 Optimum 
Gold Standard Whey 10.20kg. Optimum
我需要使用正则表达式使用python提取10.20或10,20

我已经用这个正则表达式测试过了

((kg\.|KG\.|Kg\.|kg|KG|Kg){1}[ ]{0,}\d{1,}?(\.|\,)\d{0,})|(\d{0,}?(\.|\,)\d{1,}[ ]{0,}(kg\.|KG\.|Kg\.|kg|KG|Kg))

但是寻找一个更好的正则表达式。

如果您只需要数字,而字符串只包含您想要的数字,为什么不使用类似

\d+(?:[.,]\d+)?

(?:…)
是一个非捕获组,因此它是可选的。
允许捕获非十进制数字。

尝试使用这个简化的正则表达式:

((?:[kK][gG]\.?)[ ]*\d+(?:[.,]\d+)?|\d+(?:[.,]\d+)?[ ]*(?:[kK][gG]\.?))