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

2 投票
2 回答
927 浏览
提问于 2025-04-18 01:11

我有这些字符串

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 个回答

1

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

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

如果你只需要数字,而字符串里只有你想要的数字,那为什么不试试这样的写法呢:

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

(?:...) 是一个不捕获的分组,使用 ? 让它变成可选的,这样也能捕获非十进制的数字。

撰写回答