标签: python regex
我想写一个正则表达式,它会给我所有正好在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
任何人都有一个匹配正则表达式的想法吗?
非常感谢
答案 0 :(得分:0)
试试这个
(?<=(?<!\d)\d{3})[^\d]+(?=\d{3}(?!\d))
见here on Regexr