我想规范化字符串,如
...
到
'1:2:3','10:20:30'
使用Python的re模块, 所以我试图选择像' 1:2:3'然后匹配单个号码' 1'' 2'' 3' ...,这是我的模式:
'01:02:03','10:20:30'
它有效,但我认为这种模式不够简单,任何人都可以帮我简化它?或者使用map()/ split(),如果它更复杂。
答案 0 :(得分:3)
\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']
答案 1 :(得分:1)
re.sub(r"(?<!\d)(\d)(?!\d)",r"0\1",test_str)
您可以将其简化为此。请参阅演示。
https://regex101.com/r/nD5jY4/4#python
如果字符串类似
x="""'1:2:3','10:20:30'"""
然后做
print ",".join([re.sub(r"(?<!\d)(\d)(?!\d)",r"0\1",i) for i in x.split(",")])
答案 2 :(得分:1)
您可以使用re
执行此操作,但几乎没有人会知道它之后是如何工作的。我建议改为:
':'.join("%02d" % int(x) for x in original_string.split(':'))
它更清晰如何运作。