python - 如何使用Python的re模块将 '1:2:3'归一化为 '01:02:03'?

标签 python regex

我想规范化像

这样的字符串
'1:2:3','10:20:30'

'01:02:03','10:20:30'

通过使用Python的re模块, 所以我试图选择像 '1:2:3' 这样的字符串,然后匹配单个数字 '1'、'2'、'3'...,这是我的模式:

^\d(?=\D)|(?<=\D)\d(?=\D)|(?<=\D)\d$

它有效,但我认为模式不够简单,有人可以帮助我简化它吗?或者使用 map()/split(),如果它更复杂的话。

最佳答案

\b 匹配单词字符和非单词字符。

>>> import re
>>> l = ['1:2:3','10:20:30']
>>> [re.sub(r'\b(\d)\b', r'0\1', i) for i in l]
['01:02:03', '10:20:30']

DEMO

关于python - 如何使用Python的re模块将 '1:2:3'归一化为 '01:02:03'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388849/

相关文章:

python - Pytest 断言超时?

regex - powershell - 匹配字符串,如果它具有某个字符之一。即姓氏_名字与姓氏_名字_中间名不匹配

java - Android Java 正则表达式模式

python : How to search for multiple paterns in multiple files

Python 正则表达式匹配引号、大括号或括号中的任何内容

javascript - 如何使用带有文本输入的 Javascript 检查数组中的值

python - 如何修复Pygame减速后角色不断向两个方向加速的问题?

python - 按每个整数的第一个数字对整数列表进行排序

python - dateutil/parser 中的语言环境

python - 使用 scikit-learn 分类到多个类别