在 Python 中,我需要创建一个正则表达式,在任何串联的 AlphaNum 组合之间插入一个空格。例如,这就是我想要的:
8min15sec ==> 8 min 15 sec
7m12s ==> 7 m 12 s
15mi25s ==> 15 mi 25 s
我在网上找到了解决方案,但它们有点太复杂了,我无法解析/修改。例如,我有这个:
[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
