擅长:python、mysql、java
<p>您可以将子字符串传递给<code>split</code>,而不仅仅是单个字符,因此:</p>
<pre><code>email = line.partition('[email]')[-1].partition('[')[0].rstrip()
</code></pre>
<p>与简单的<code>split</code>解决方案相比,它有一个优势,即它可以在值中包含空格的字段上工作,也可以在顺序不同的行上工作(即使它们的最后一个字段是<code>[email]</code>),等等</p>
<p>概括起来:</p>
^{pr2}$
<p>然而,我认为它仍然比正则表达式解决方案复杂。另外,它一次只能搜索一个字段,而不是一次搜索所有字段(不会使它变得更复杂)。要获得两个字段,您将对每行进行两次解析,如下所示:</p>
<pre><code>for line in data.splitlines():
print '''{} "babysat" Dan O'Brien on {}'''.format(get_field(line, 'name'),
get_field(line, 'dob'))
</code></pre>
<p>(当然,我可能误解了<a href="https://twitter.com/DOB_INC" rel="nofollow">DOB</a>字段。)</p>