我有这样的字符串:
某事:20公斤/件:120公斤
我有这个正则表达式("[0-9]{1,2} kg", string)
,但它两次都返回20kg
。我只需要在第一种情况下返回20kg
。
答案 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'