擅长:python、mysql、java
<p>您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.findall.html" rel="nofollow noreferrer">str.findall</a>使用单个模式并使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html" rel="nofollow noreferrer">apply</a>连接结果,而不是创建模式列表</p>
<p>模式:</p>
<pre><code>v(?:t|\d{1,2})|r\d
</code></pre>
<p><a href="https://regex101.com/r/LYUe9L/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>比如说</p>
<pre><code>import pandas as pd
items= [
"disvt",
"disr5",
"disvt_r1",
"disr5/r6"
]
df = pd.DataFrame(items, columns=["input_str"])
df['new_column'] = df['input_str'].str.findall(r"v(?:t|\d{1,2})|r\d").apply('_'.join)
print(df)
</code></pre>
<p>输出</p>
<pre><code> input_str new_column
0 disvt vt
1 disr5 r5
2 disvt_r1 vt_r1
3 disr5/r6 r5_r6
</code></pre>