Pandas,str.extract不适用于我的正则表达式?

2024-05-18 08:45:01 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在尝试使用str.extract()提取子字符串,但它不想工作

我的正则表达式

regex=r'(An+.+,$)'
dataset['Sprint']=dataset['URL'].str.extract(regex)

我想用粗体字摘录:

[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=]


Tags: 字符串nameanidurlextractdatasetregex
2条回答

为什么不在名字上加正则表达式呢

dataset['Sprint'] = df['URL'].str.extract("name=(.*?),")

问题在于如何定义正则表达式,正则表达式的意思是“提取字符串匹配:一个字符“a”,带有1个或多个字符“n”,带有1个或多个任意字符(行终止符除外),一个字符“,”和在行的末尾”。如果您仔细想想,您无法与示例中的描述相匹配,因为行尾没有逗号。您可以使用这个有用的website来尝试正则表达式,它可以很好地解释正则表达式

解决这个问题,你可以做到

regex=r'(An[a-zA-Z0-9\s]+.[a-zA-Z0-9\s]+),'
dataset['Sprint']=dataset['URL'].str.extract(regex)

或任何其他正则表达式,具体取决于您希望正则表达式的灵活性

相关问题 更多 >