擅长:python、mysql、java
<p>这是一个使用正则表达式的版本,但不需要在所有部分上循环两次:</p>
<pre><code>def extract(line):
_, _, parts = line.strip().partition(' Parse: ')
return re.split('(?: \|)? \+ ', parts)
line = "Input:Can we book an hotel in Lagos ? Parse: book VB ROOT + Can MD aux + we PRP nsubj + hotel NN dobj | + an DT det | + in IN prep | + Lagos NNP pobj + ? . punct "
print(extract(line))
>>> ['book VB ROOT', 'Can MD aux', 'we PRP nsubj', 'hotel NN dobj', 'an DT det', 'in IN prep', 'Lagos NNP pobj', '? . punct']
</code></pre>