擅长:python、mysql、java
<p>这里的困难在于,您希望匹配一系列大写字母、数字或空格,但不希望仅匹配<em>一个空格,而且可能不希望匹配任何不包含任何数字的内容</p>
<p>虽然可能有一种更简单的形式,但有一件事是可行的,那个就是坚持要有一个数字,前后都有任意数量的其他字符</p>
<p>该模式还应在单词边界上开始和结束,以便不会在下一个单词的开头去掉大写字母</p>
<pre><code>import re
re.sub(r'\b[A-Z\d ]*\d[A-Z\d ]*\b', '', address)
</code></pre>
<p>问题中示例的输出:</p>
<pre><code>Amsterdam
Aberdeen
Shrewsbury
Edinburh
Newport
San Miguel de Tucumán
Lancashire
Manchester
Oshawa
</code></pre>
<p>注释中其他地方提到的<code>20007 Washington</code>的输出:</p>
<pre><code>Washington
</code></pre>
<p>发明一个在末尾有代码的示例,即:</p>
<pre><code>Some other address SW1A 1AA
</code></pre>
<p>它给出:</p>
<pre><code>Some other address
</code></pre>
<P>注意:如果一些代码不包含任何数字,那么您可以做的是用^ {< CD3>}在中间替换^ {< CD2>},这样,如果它包含了<EM>两个EEE>大写字母,就足够了。您不希望将单个大写字母视为代码,例如<code>A Coruña</code></p>