You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用正则表达式从Pandas DataFrame字符串列提取指定子字符串

问题解决方法

错误原因

  • 正则中*属于特殊量词,代表匹配前一个字符0次或多次,你未对其转义的情况下,/*逻辑是匹配斜杠符号0次或多次,无法匹配你文本中的字面量*
  • 原有正则没有定位到你需要提取的方括号区间,即便修正转义问题,也只会提取到/*和*/中间的[lion]这类带方括号的内容,不符合需求

正确实现代码

你可以直接匹配方括号区间捕获内部内容,代码如下:

# 提取C23列方括号内的文本
df['C23'] = df['C23'].str.extract(r'\[([^\]]+)\]')

如果你需要严格匹配外层的/*和*/结构避免误匹配,可以使用更严谨的正则:

df['C23'] = df['C23'].str.extract(r'/\*\[([^\]]+)\]\*/')

正则逻辑说明

  • \[ 匹配字面量左方括号
  • ([^\]]+) 为捕获组,匹配所有非右方括号的字符,就是你需要提取的内容
  • \] 匹配字面量右方括号
  • 严谨版本额外加了/\*和\*/的匹配规则,确保只会匹配被/*[和]*/包裹的内容

内容的提问来源于stack exchange,提问作者Zanam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:15:02