我正在使用正则表达式从URL中提取ID。
它适用于数字ID,但不适用于ID这样的“ aa”。
例如,这不起作用:
http://TESTETESTE/?s_device=m&bm_campaign=aa&utm_affiliate&b
但是这样做:
http://TESTETESTE/?s_device=m&bm_campaign=301103863&bf_adgroup
我的代码是:
df["id"] = df['captureurl'].str.extract('campaign=(\d+)')
答案 0 :(得分:2)
正则表达式\d
匹配“任何十进制数字;这等效于类[0-9]
”(引自https://docs.python.org/3.7/howto/regex.html#matching-characters)。
如果您改为使用(\d|\w)
(\w
“匹配任何字母数字字符;这等效于类[a-zA-Z0-9_]
”)。或只是将其展开:[a-zA-z0-9]
,就可以与aa
匹配:
df["id"] = df['captureurl'].str.extract('bm_campaign=([a-zA-Z0-9]+)')