gpt4 book ai didi

Python:使用 rsub 填充零的 zfill

转载 作者:行者123 更新时间:2023-12-01 07:13:05 25 4
gpt4 key购买 nike

我编写了一个脚本来标准化从数据库中提取的一堆值(主要是使用 r.sub)。我很难合并 zfill 将数值填充到 5 位。

输入

FOO5864BAR654FOOBAR

期望的输出

FOO_05864-BAR-00654_FOOBAR

到目前为止我已经使用了 re.sub

FOO_5864-BAR-654_FOOBAR

一种选择是对每种可能的格式进行 re.sub w/捕获组 [即下面],它有效,但我认为这不是正确的方法。

(\d)         sub   0000\1
(\d\d) sub 000\1
(\d\d\d) sub 00\1
(\d\d\d\d) sub 0\1

最佳答案

假设您的输入均为字母-数字-字母-数字-字母(每个一个或多个)的形式,您只需将匹配的第二组和第四组填零即可:

import re

s = 'FOO5864BAR654FOOBAR'
pattern = r'(\D+)(\d+)(\D+)(\d+)(\D+)'
m = re.match(pattern, s)
out = '{}_{:0>5}-{}-{:0>5}_{}'.format(*m.groups())
print(out) # -> FOO_05864-BAR-00654_FOOBAR

您也可以使用 str.zfill(5) 来完成此操作,但 str.format 方法更加简洁。

关于Python:使用 rsub 填充零的 zfill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58104301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com