擅长:python、mysql、java
<ul>
<li><p>要匹配换行符:使用<code>re.DOTALL</code></p></li>
<li><p>你还想抓住<code>address</code>和<code>telephone</code>之间的所有东西,但要不贪婪<code>.+?</code></p></li>
<li><p>此外,您希望将其存储为一个组,因此请使用<code>()</code></p></li>
<li><p>用一个空格替换所有空格:<code>re.sub</code></p></li>
</ul>
<p>结果呢</p>
<pre><code>addresses = [re.sub(r'\s+', r' ', addr)
for addr in re.findall(r'Address (.+?)Telephone', rstr, re.DOTALL)]
</code></pre>
<p>输出</p>
<pre><code>['The Westshore Grand, A Tribute Portfolio Hotel, Tampa',
'hotels near 1255 north palm ave sarasota florida']
</code></pre>
<p>也做</p>
<pre><code>phones = re.findall(r'Telephone\s*(.+)\s*', rstr)
emails = re.findall(r'E-mail\s*(.+)\s*', rstr)
</code></pre>
<p>然后你可以在它们上面循环:</p>
<pre><code>for addr, phone, email in zip(addresses, phones, emails):
print(addr, phone, email, sep='\n', end='\n\n')
</code></pre>
<p><strong>输出</strong></p>
<pre><code>The Westshore Grand, A Tribute Portfolio Hotel, Tampa
52 70 90 00
info.suchona@gmail.com
hotels near 1255 north palm ave sarasota florida
62 40 80 00
info.niit@hotmail.com
</code></pre>