Python REGEX从字符串中获取权重值

时间:2014-04-03 14:28:04

标签: 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,}?(\.|\,)\d{0,})|(\d{0,}?(\.|\,)\d{1,}[ ]{0,}(kg\.|KG\.|Kg\.|kg|KG|Kg))

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

2 个答案:

答案 0 :(得分:1)

如果你只需要数字而且字符串只包含你想要的数字,为什么不只是像

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

(?:...)是一个非捕获组,使其成为可选项?允许捕获非小数位数。

答案 1 :(得分:1)

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

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