Python,正则表达式从字符串中提取,仅使用数字而不是字母

时间:2019-10-17 17:31:37

标签: python regex

我正在使用正则表达式从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+)')

1 个答案:

答案 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]+)')