我有这样的字符串:
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'
