擅长:python、mysql、java
<p>首先,您使用的是match,它只从字符串的开头开始匹配:请参见<a href="http://docs.python.org/library/re.html#matching-vs-searching" rel="noreferrer">http://docs.python.org/library/re.html#matching-vs-searching</a></p>
<p>另外,即使你使用的是搜索,你也不会抓取包含5位数字的组。</p>
<p>最后,即使您使用的是搜索,用一个克拉^开始您的正则表达式将迫使它从头开始搜索,这显然在您的情况下是行不通的。</p>
<pre><code>>>> postal_code = re.search(r'.*(\d{5}(\-\d{4})?)$', address)
>>> postal_code.groups()
('84532', None)
</code></pre>