我有一个数据框,如下所示
COURSE_ID
INC-AAB-WW-105614
INC-AAB-DE-234567
INC-AAB-NL-WFT-PA-BS-123489
INC-AAB-NL-WFT-PA-SI-145678-SYS-2020
EXI-WDFT-145678
从这里我只需要取
对于不是以INC-AAB开头的其余部分,将保持不变。国家代码可在另一个查找表中找到。最后的数据帧看起来是这样的
COURSE_ID
INC-AAB-WW-105614
INC-AAB-DE-234567
INC-AAB-NL-123489
INC-AAB-NL-145678
EXI-WDFT-145678
熊猫不是我的强项,但也许有些东西在替换功能中使用常规的epxpress
印刷品:
{}背后的理念是:
^
-开始线锚李>(INC-AAB-[A-Z]+)
-第一个捕获组,包含所需的“INC-AAB-”开头和任何1+大写字符(alpha)李>.*?
-0+个字符的延迟匹配,最多为李>(-\d{6})
-第二个捕获组,包含您所需的连字符模式和最多6个数字李>\b.*
-字边界和0+(贪婪)字符李>$
-结束线锚定李>我们可以连接所有捕获组以获得您想要的结果:
请参阅联机demo
下面是另一个使用^{} 的选项,用于更简单的正则表达式
如果不以} 正则表达式:
INC
开头,则保留df.COURSE_ID
,否则^{请您尝试以下方法:
^(INC-AAB-[A-Z]+-)
匹配的子字符串INC-AAB-
位于 字符串后跟国家代码和连字符。然后是匹配的 子字符串在组1中捕获(由\1
引用)李>(?:[A-Z]+-)*
匹配被丢弃的可选国家/地区代码李>(\d+)
匹配组2中捕获的课程代码(\2
)李>.*
匹配被丢弃的剩余片段李>输出:
相关问题 更多 >
编程相关推荐