擅长:python、mysql、java
<h3><code>Series.str.extractall</code></h3>
<p>我们可以<code>extract</code>将所有出现的捕获组指定为regex模式,然后<code>unstack</code>进行重塑</p>
<pre><code>df['val'].str.extractall(r'([^,]+)(?:\s*,\s*|$)')[0].unstack()
</code></pre>
<hr/>
<pre><code>match 0 1 2
0 V583 ATTENTION PRIMARY
1 Y9207 INDOOR LIVING sEcondary
2 z526 liver primary
3 12345678 test secondary
4 project NaN NaN
</code></pre>
<p><strong>正则表达式详细信息:</strong></p>
<ul>
<li><code>([^,]+)</code>:第一捕获组
<ul>
<li><code>[^,]+</code>:匹配列表中不存在的任何字符<code>[,]</code>一次或多次</李>
</ul>
</li>
<li><code>(?:\s*,\s*|$)</code>:非捕获组
<ul>
<li><code>\s*,\s*</code>:第一种选择
<ul>
<li><code>\s*</code>:匹配任何空白字符零次或多次</li>
<li><code>,</code>:按字面意思匹配字符逗号</li>
<li><code>\s*</code>:匹配任何空白字符零次或多次</li>
</ul>
</li>
<li><code>$</code>:第二个备选方案断言行末尾的位置</li>
</ul>
</li>
</ul>
<p>PS:如果您有任意数量的逗号分隔字符串,此方法也可以使用。</strong></p>