擅长:python、mysql、java
<p>您可以使用此正则表达式提取:</p>
<pre><code>>>> print (df)
name
0 JOSEPH W. JASON
1 Ralph Landau
2 RAYMOND C ADAMS
3 ABD, SAMIR
4 ABDOU TCHOUSNOU, BOUBACA
5 ABDL-ALI, OMAR R
>>> df['name'].str.extract(r'([^,]+(?=,)|\w+(?:-\w+)*(?=$))', expand=False)
0 JASON
1 Landau
2 ADAMS
3 ABD
4 ABDOU TCHOUSNOU
5 ABDL-ALI
</code></pre>
<p><strong>正则表达式详细信息:</strong></p>
<ul>
<li><code>(</code>:启动捕获组
<ul>
<li><code>[^,]+(?=,)</code>:匹配1+个非逗号字符</li>
<li><code>|</code>:或</li>
<li><code>\w+</code>:匹配1+个单词字符</li>
<li><code>(?:-\w+)*</code>:匹配<code>-</code>后跟1+个单词字符。匹配此组中的0个或多个</li>
</ul>
</li>
<li><code>)</code>:结束捕获组</li>
<li><code>(?=,|$)</code>:Lookahead断言前面有逗号或行尾</li>
</ul>