擅长:python、mysql、java
<p>熊猫不是我的强项,但也许有些东西在替换功能中使用常规的epxpress</p>
<pre><code>df['COURSE_ID'] = df['COURSE_ID'].str.replace(r'^(INC-AAB-[A-Z]+).*?(-\d{6})\b.*$', r'\1\2')
print(df)
</code></pre>
<p>印刷品:</p>
<pre><code> COURSE_ID
0 INC-AAB-WW-105614
1 INC-AAB-DE-234567
2 INC-AAB-NL-123489
3 INC-AAB-NL-145678
4 EXI-WDFT-145678
</code></pre>
<hr/>
<p>{<cd1>}背后的理念是:</p>
<ul>
<li><code>^</code>-开始线锚</李>
<li><code>(INC-AAB-[A-Z]+)</code>-第一个捕获组,包含所需的“INC-AAB-”开头和任何1+大写字符(alpha)</李>
<li><code>.*?</code>-0+个字符的延迟匹配,最多为</李>
<li><code>(-\d{6})</code>-第二个捕获组,包含您所需的连字符模式和最多6个数字</李>
<li><code>\b.*</code>-字边界和0+(贪婪)字符</李>
<li><code>$</code>-结束线锚定</李>
</ul>
<p>我们可以连接所有捕获组以获得您想要的结果:</p>
<pre><code>\1\2
</code></pre>
<p>请参阅联机<a href="https://regex101.com/r/pCv0Lk/1" rel="nofollow noreferrer">demo</a></p>