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

Pandas的str.extract用正则提取仅返回首个匹配是方法还是正则问题?

问题原因

该现象由str.extract方法本身的设计特性导致,和正则表达式配置无关。
Pandas中str.extract的实现逻辑仅返回正则表达式第一个捕获组的首个匹配结果,不支持全局匹配。你在regex101开启全局模式后可以拿到全部匹配,是因为regex101的全局搜索逻辑独立于Pandas的方法实现,两者不互通。

解决建议

方案1:直接替换非小写字母字符(推荐,性能最高)

直接用str.replace将所有非小写字母的字符替换为空,一步得到目标结果:

leaseterm1['Termtext'] = leaseterm1['TermNew'].str.replace(r'[^a-z]', '', regex=True)

其中正则[^a-z]代表匹配所有不属于a-z小写字母的字符,全部替换为空后自然得到所有小写字母拼接的结果。

方案2:全局提取后拼接

如果需要走「提取所有字母序列再拼接」的逻辑,可以使用支持全局匹配的str.findall方法:

leaseterm1['Termtext'] = leaseterm1['TermNew'].str.findall(r'[a-z]+').str.join('')

str.findall会返回每个字符串中所有匹配的小写字母序列组成的列表,再通过str.join('')将列表内的元素拼接为完整字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:27:05