Python正则表达式求助:提取括号前最后一个逗号后的所有字符
正则调整方案
你的原有正则只会匹配第一个逗号到右括号之间的内容,无法处理括号内存在多个逗号的场景,也没有自动过滤前后空格。调整后正则优先定位到括号内的最后一个逗号,再提取逗号后到右括号前的内容,同时自动过滤前后空白字符。
调整后的代码如下:
df['regex_2'] = df['name'].str.extract(r'.*,\s*([^,)]+?)\s*\)')
正则规则说明
.*,:贪婪匹配尽可能多的字符直到最后一个逗号,确保定位到括号内的最后一个逗号位置\s*:匹配逗号后的任意数量空白字符,过滤目标内容的前置空格([^,)]+?):捕获组,匹配除逗号、右括号外的所有字符,即你需要提取的目标内容\s*\):匹配目标内容后的任意数量空白字符和右括号,过滤目标内容的后置空格
匹配结果验证
对给出的示例文本测试,输出完全符合预期:
| 原始文本 | 提取结果 |
|---|---|
| Text 123 (SDC, XUJ) | XUJ |
| Text BCD (AUD) | 空值 |
| Text 123 (AUD, XTJ) | XTJ |
| Text BCSS (AUD,TACT,HGI7649AU) | HGI7649AU |
内容的提问来源于stack exchange,提问作者Dan0z_Direct
相关产品推荐
相关产品推荐

