-1

我有一个大约 4,000 项长的列表,用于我尝试格式化的主机名。该列表来自站点 ID,主机名使用站点 ID 格式化。数字部分以零为前缀,长度必须为 5 位,包括填充。我如何编写一个正则表达式来匹配和前置,以便格式与前 3 个条目匹配?一旦站点 ID 变为 4 位数字,简单地添加“s00”将不起作用。

s00119rtr1
s00119rtr1
s00120rtr1
120rtr1
120rtr1
120rtr1
121rtr1
121rtr1
121rtr1
124rtr1
124rtr1

谢谢!

4

2 回答 2

4

Perl 解决方案:

s/^(\d+)/sprintf('s%05d', $1)/e;
于 2012-11-09T02:36:54.530 回答
2

这是在python中:

import re

groups = re.match(r'(\d+)(.+)', host)
normalized_host = 's%05d%s' % (int(groups.group(1)), groups.group(2))
于 2012-11-09T02:31:46.827 回答