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

时间:2011-09-27 09:15:07

标签: python regex

我有这样的字符串:

  某事:20公斤/件:120公斤

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

1 个答案:

答案 0 :(得分:3)

试试这个:

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

(?<!...)negative look behind。因此它匹配一个或两个数字 not 前面有一个数字。我还用一个或多个空格来改变了文字空间。

看到你问过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'