Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想写一个正则表达式,它会给我正好在 3 位数字之间的所有字符。例如: 111a333b444将返回a和b。但是,1111a333b444只会返回,b因为 . 左侧有 3 位以上的数字a。因为这里存在重叠问题,所以我使用了前瞻正则表达式,例如: 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))
在 Regexr 上查看