这是我的字符串:
"ab1 ab-1 f-12 g-12 ffff-123 456"
我想挑选出具有以下特点的东西:
- 最多 2 个字母
- 可选连字符
最多 2 个号码
有效:ab1、ab-1、f-12、g-12
- 无效:ffff-123、456
所以我创建了正则表达式:
[\w{1,2}]-?\d{1,2}
但它返回了太多东西:
>>> re.findall('[\w{1,2}]-?\d{1,2}', "ab1 ab-1 f-12 g-12 ffff-123 456")
['b1', 'b-1', 'f-12', 'g-12', 'f-12', '456']
问题:
[\w{1,2}]
需要与-?
......隔离,我认为他们被困在一起[\w{1,2}]
正在获得最小的可能匹配,例如b-1
fromab-1
,当它应该获得最多 2 个字符的最大可能匹配时,ab-1
有任何想法吗?