2024-04-19 08:20:45 发布
网友
我想写一个正则表达式,将给我所有字符之间正好3位数字。例如:111a333b444将返回a和b。但是,1111a333b444将只返回b,因为a的左边有3个以上的数字。 因为这里存在重叠的问题,所以我使用了一个前瞻正则表达式,例如:matches = re.finditer(r'(?=([\d]{3}(.){1}[\d]{3}))',str)但在上面的第二个示例中,它也匹配111a333。你知道吗
111a333b444
a
b
1111a333b444
matches = re.finditer(r'(?=([\d]{3}(.){1}[\d]{3}))',str)
111a333
有人想到一个能匹配的正则表达式吗?你知道吗
多谢了
试试这个
(?<=(?<!\d)\d{3})[^\d]+(?=\d{3}(?!\d))
看到了吗here on Regexr
试试这个
看到了吗here on Regexr
相关问题 更多 >
编程相关推荐