<p>我有三个字符串,其中包含街道名称和公寓号的信息</p>
<p><code>"32 Syndicate street"</code>、<code>"Street 45 No 100"</code>和<code>"15, Tom and Jerry Street"</code></p>
<p>这里,</p>
<pre><code>"32 Syndicate street" -> {"street name": "Syndicate street", "apartment number": "32"}
"Street 45 No 100" -> {"street name": "Street 45", "apartment number": "No 100"}
"15, Tom and Jerry Street" -> {"street name": "Tom and Jerry Street", "apartment number": "15"}
</code></pre>
<p>我试图使用Python的正则表达式分别获取街道名称和公寓号码。
这是我当前的代码,有问题:</p>
<pre><code>import re
for i in ["32 Syndicate street","Street 45 No 100","15, Tom and Jerry Street"]:
###--- write patterns for street names
pattern_street = re.compile(r'([A-Za-z]+\s?\w+ | [A-Za-z]+\s?[A-Za-z]+\s?[A-Za-z]+\s? | [A-Za-z]+\s?)')
match_street = pattern_street.search(i)
###--- write patterns for apartment numbers
pattern_aptnum = re.compile(r'(^\d+\s? | [A-Za-z]+[\s?]+[0-9]+$)')
match_aptnum = pattern_aptnum.search(i)
fin_street = match_street[0] ##--> final street name
fin_aptnum = match_aptnum[0] ##--> final apartment name
print("street--",fin_street)
print("apartmentnumber--",fin_aptnum)
</code></pre>
<p>我得到以下输出:</p>
<pre><code>street-- Syndicate street
apartmentnumber-- 32
street-- Street 45
apartmentnumber-- No 100
</code></pre>
<p>我有两个问题:</p>
<ol>
<li>我无法得到最后一个字符串的公寓号码“15”</李>
<li>为什么在<code>street-- Syndicate street</code>和<code>apartmentnumber-- No 100</code>的开头有空格</li>
</ol>