Skip to main content
 首页 » 编程设计

python之插入空格以分隔连接的字母和数字字符串之Python RegEx

2025年05月04日31lexus

在 Python 中,我需要创建一个正则表达式,在任何串联的 AlphaNum 组合之间插入一个空格。例如,这就是我想要的:

8min15sec ==> 8 min 15 sec 
7m12s ==> 7 m 12 s 
15mi25s ==> 15 mi 25 s 

RegEx101 demo

我在网上找到了解决方案,但它们有点太复杂了,我无法解析/修改。例如,我有这个:

[a-zA-Z][a-zA-Z\d]* 

但它只识别第一个插入点:8Xmin15sec(X)

还有这个

(?<=[a-z])(?=[A-Z0-9])|(?<=[0-9])(?=[A-Z]) 

但它只找到这个点:8minX15sec (the X)

我可以肯定地使用具有完整语法的手来查找每个插入点并插入空格。

RegEx101 demo (与上面相同的链接)

请您参考如下方法:

下面的方法怎么样:

import re 
 
for test in ['8min15sec', '7m12s', '15mi25s']: 
    print(re.sub(r'(\d+|\D+)', r'\1 ', test).strip())   

这会给你:

8 min 15 sec  
7 m 12 s  
15 mi 25 s