Python正则表达式报错re.error: multiple repeat at position 7求助
解决URL提取rbl参数时的正则错误
错误原因
你的正则表达式r"rbl=(.*+)"存在语法问题:*和+都是正则量词,不能连续叠加使用。.*已经表示匹配任意字符(除换行)0次或多次,后续的+属于重复定义量词,直接触发re.error: multiple repeat报错。
解决方案1:修正正则表达式
改用[^&]+匹配rbl参数的值——因为URL参数用&分隔,这样能精准匹配到下一个参数前的内容,避免匹配到多余字符:
import re url = 'https://uk.indeed.com/jobs?q=United+Kingdom&rbl=London&jlid=833c779eabe84c9f' ab = re.search(r"rbl=([^&]+)", url) if ab: print(ab.group(1)) # 输出 London
解决方案2:使用标准库解析URL(更健壮)
推荐用Python自带的urllib.parse模块处理URL参数,这种方法能兼容各种参数顺序、特殊字符场景,比正则更可靠:
from urllib.parse import urlparse, parse_qs url = 'https://uk.indeed.com/jobs?q=United+Kingdom&rbl=London&jlid=833c779eabe84c9f' parsed_url = urlparse(url) params = parse_qs(parsed_url.query) rbl_value = params.get('rbl', [''])[0] print(rbl_value) # 输出 London
内容的提问来源于stack exchange,提问作者Sriram Chowdary
相关产品推荐
相关产品推荐

