我有这样的字符串:
约20公斤/约120公斤
我有此正则表达式("[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'
关于python - 正则表达式仅匹配两个数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7566749/