您使用的当前正则表达式(((\D|^)*)\d\d\d\d\d((\D|$)*)
)re.findall
将不会返回数字块,因为它们未被捕获.更多,这些(\D|^)*
和
(\D|$)*
部分是可选的,这意味着他们没有做他们应该做的事情,正则表达式将在更长的数字块中找到5个数字块.
如果您必须找到未包含其他数字的5位数字块,请使用
re.findall(r"(?请参阅正则表达式演示
细节:
(? - 当前位置之前不允许数字
\d{5}
- 5位数
(?!\d)
- 当前位置后不允许数字.