<p>请考虑包含以下内容的文件:</p>
<pre><code>Jesus is friends with Chuck Norris
Cindy Crawford is friends with Nicole Kidman
V is friends with Barack Obama
Chuck Norris is friends with Barack Obama
V is friends with François Hollande
Penelope Cruiz is friends with Tom Cruise
Nicole Kidman is friends with Tom Cruise
Katie Holmes is friends with Tom Cruise
Sim is friends with Lara Croft
Sim is friends with Chuck Norris
Lara Croft is friends with V
Yvette Horner is friends with Sim
François Hollande is friends with Barack Obama
Sim is friends with Jesus
Tom Cruise is friends with Barack Obama
</code></pre>
<p>我试着匹配所有这些基本上是这样形成的线条:</p>
<pre><code>first_name (last_name?) 'is friends with' first_name (last_name?)
</code></pre>
<p>基本上,有些行可以有全名,有些行可以有名字和全名,或者全名和名字,等等。。。在句子中间加上“is friends with”</p>
<p>下面是我在Python中使用的当前正则表达式:</p>
<pre><code>(\w+ \w+) (is friends with) (\w+ \w+)
</code></pre>
<p>但这一个只匹配“全名是朋友与全名”行。我似乎找不到一种方法来匹配那些有两个名字的人,或者一个全名和一个名字的人,等等</p>
<p>有什么想法吗</p>