擅长:python、mysql、java
<p>您可以在模式中使用命名组来捕获子字符串,这使得引用子字符串更容易,而且这样做的代码更可读:</p>
<pre><code>import re
data = ['Laura Compton, a Stock Broker from Los Angeles, California',
'Miles Miller, a Soccer Player from Seattle, Washington']
pattern = (r'^(?P<name>[^,]+)\, an? (?P<position>.+) from '
r'(?P<city>[^,]+)\, +(?P<state>.+)')
FIELDS = 'name', 'position', 'city', 'state'
for sentence in data:
matches = re.search(pattern, sentence)
name, position, city, state = matches.group(*FIELDS)
print(', '.join([name, position, city, state]))
</code></pre>
<p>从样本<code>data</code>产生的输出:</p>
<pre class="lang-none prettyprint-override"><code>Laura Compton, Stock Broker, Los Angeles, California
Miles Miller, Soccer Player, Seattle, Washington
</code></pre>
<p>A.M.Kuchling写了一篇很好的教程,题为<a href="https://docs.python.org/3/howto/regex.html" rel="nofollow noreferrer"><em>Regular Expression HOWTO</em></a>你应该退房。你知道吗</p>