Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,正则表达式从字符串中提取只处理数字而不是字母_Python_Regex - Fatal编程技术网

Python,正则表达式从字符串中提取只处理数字而不是字母

Python,正则表达式从字符串中提取只处理数字而不是字母,python,regex,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(

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

正则表达式
\d
匹配“任何十进制数字;这相当于类
[0-9]
”(引用自)

如果改为使用
(\d |\w)
\w
“匹配任何字母数字字符;这相当于类
[a-zA-Z0-9]
”)。或者直接展开它:
[a-zA-z0-9]
,它将匹配
aa
很好:

df["id"] = df['captureurl'].str.extract('bm_campaign=([a-zA-Z0-9]+)')

正则表达式
\d
匹配“任何十进制数字;这相当于类
[0-9]
”(引用自)

如果改为使用
(\d |\w)
\w
“匹配任何字母数字字符;这相当于类
[a-zA-Z0-9]
”)。或者直接展开它:
[a-zA-z0-9]
,它将匹配
aa
很好:

df["id"] = df['captureurl'].str.extract('bm_campaign=([a-zA-Z0-9]+)')

这是因为
\d
只匹配数字。。。为什么不使用
'campaign=([A-Za-z0-9]+)”
或者等效地使用
'campaign=([^\W_U8;]+)”
?这是因为
\d
只匹配数字。。。为什么不使用
'campaign=([A-Za-z0-9]+)”
或等效的
'campaign=([^\W\]+)”