擅长:python、mysql、java
<p>你的正则表达式可以工作,但<code>format</code>不能,因为你试图传递一个整数格式的字符串,<em>和</em>反过来,<em>和</em>用旧式<code>%</code>语法。。。你知道吗</p>
<p>在<code>str.format</code>中,string对象具有格式(使用<code>{}</code>样式语法),要格式化的string/integers/whatever对象作为<em>参数</em>传递。你知道吗</p>
<p>替换(例如):</p>
<pre><code>if re.match(r"^\d{1,4}$", self.rawData):
return "{:05}".format(int(self.rawData))
</code></pre>
<p>如果没有格式,您也可以使用<code>zfill</code>来左填充零(更快,因为您不必转换为整数)</p>
<pre><code>return self.rawData.zfill(5)
</code></pre>
<p>而且您甚至可能不需要测试数字的数量,只要<code>zfill</code>不管是什么,或者如果zipcode只是数字:</p>
<pre><code>def __repr__(self):
return self.rawData.zfill(5) if self.rawData.isdigit() else self.rawData
</code></pre>