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

Pandas中str.extract()结合正则表达式无法提取子串问题求助

解决Pandas str.extract()提取子串的问题

嘿,我来帮你搞定这个提取需求!你的正则没精准定位到目标内容的位置,所以才没拿到想要的结果。

问题分析

你要提取的是name=后面到下一个逗号之间的内容,但原正则r'(An+.+,$)'既没定位到name=这个关键前缀,匹配逻辑也没聚焦到目标区间,自然抓不到正确的子串。

正确方案

我们需要用正则精准锁定name=的位置,然后捕获它后面到逗号前的内容:

  1. 匹配正则:r'name=\s*(.+?)\s*,'

    • name=:精准定位目标内容的前缀
    • \s*:匹配name=之后、内容之前的任意空格(兼容有无空格的情况)
    • (.+?):非贪婪匹配捕获目标内容(避免过度匹配到后面的字符)
    • \s*:匹配内容之后、逗号之前的任意空格
    • ,:匹配结束的逗号,确保只提取到目标区间
  2. Pandas代码:

dataset['Sprint'] = dataset['URL'].str.extract(r'name=\s*(.+?)\s*,')

测试验证

用你提供的示例字符串测试一下:

import pandas as pd

test_url = "[id=5548,rapidViewId=2968,state=ACTIVE,name= Anki Sprint 1.12 glu ,startDate=2020-03-09T09:21:24.412+01:00,endDate=2020-03-31T23:59:00.000+02:00,completeDate=,sequence=5548,goal=]"
df = pd.DataFrame({'URL': [test_url]})
df['Sprint'] = df['URL'].str.extract(r'name=\s*(.+?)\s*,')

print(df['Sprint'].iloc[0])
# 输出结果:Anki Sprint 1.12 glu

这样就能准确提取到你想要的内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:17:56