我有一个大约4,000个项目的列表,我正在尝试格式化主机名。该列表来自站点ID,主机名使用站点ID格式化。数字部分以零为前缀,长度必须为5位,包括填充。如何编写匹配和前置的正则表达式,以便格式匹配前3个条目?一旦站点ID变为4位,简单地添加“s00”就不会起作用。
s00119rtr1
s00119rtr1
s00120rtr1
120rtr1
120rtr1
120rtr1
121rtr1
121rtr1
121rtr1
124rtr1
124rtr1
谢谢!
答案 0 :(得分:4)
Perl解决方案:
s/^(\d+)/sprintf('s%05d', $1)/e;
答案 1 :(得分:2)
这是python:
import re
groups = re.match(r'(\d+)(.+)', host)
normalized_host = 's%05d%s' % (int(groups.group(1)), groups.group(2))