Skip to main content
 首页 » 编程设计

python之正则表达式只匹配两个数字

2024年08月30日38wuhuacong

我有这样的字符串:

something: 20 kg/ something: 120 kg

我有这个正则表达式 ("[0-9]{1,2} kg", string),但它两次都返回 20kg。我只需要在第一种情况下返回 20kg。

请您参考如下方法:

试试这个:

(?<!\d)\d{1,2}\s+kg 

(?<!...)是 negative look behind .所以它匹配一个或两个数字,不前面有一个数字。我还用一个或多个空格字符更改了文字空间。

看到你问了 Python 问题,这里有一个 Python 的演示:

#!/usr/bin/env python 
import re 
string = 'something: 20 kg/ something: 120 kg' 
print re.findall(r'(?<!\d)\d{1,2}\s+kg', string) 

这将打印['20 kg']

编辑

正如@Tim 提到的,单词边界 \b足够了:r'\b\d{1,2}\s+kg'