擅长:python、mysql、java
<p>我不能保证我完全理解<a href="http://en.wikipedia.org/wiki/Postal_codes_in_Canada" rel="nofollow">the format</a>,但这似乎有效:</p>
<pre><code>\b(?!.{0,7}[DFIOQU])[A-VXY]\d[A-Z][^-\w\d]\d[A-Z]\d\b
</code></pre>
<p><a href="https://regex101.com/r/wL6eD1/4" rel="nofollow">Demo</a></p>
<p>您也可以通过以下更改来修复(至少在示例中是这样):</p>
^{pr2}$
<p>(除了它接受连字符,这是禁止的)</p>
<p><a href="https://regex101.com/r/wL6eD1/5" rel="nofollow">Demo</a></p>
<p>但在这种情况下,明确的模式可能是最好的:</p>
<pre><code>\b[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z]\s\d[ABCEGHJ-NPRSTV-Z]\d\b
</code></pre>
<p>完成了其他步骤的1/4。在</p>
<p><a href="https://regex101.com/r/wL6eD1/7" rel="nofollow">Demo</a></p>