python regular express如何获取可以由“&page=2”处理或不能由“&page=2”处理的值

2024-09-30 18:22:40 发布

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

这些是我可能面临的问题

http://bla bla bla/?another bla bla bla

http://bla bla bla/?another bla bla bla&page=3

我的问题

我想带走你

http://bla bla bla/?another bla bla bla

我尝试的

re.match("(.*)^&page=+\d",value).group(1)

其中value是具有字符串值的prameter

但我得到:

AttributeError: 'NoneType' object has no attribute 'group'

我知道原因(正则表达式是错误的),但我不知道解决方法


Tags: no字符串rehttpobjectvaluematchpage
2条回答

如果要解析url,请使用专用的解析库,即^{}

import urlparse
my_url = "http://domain.com/some/address?some=data&page=3&another=param"
p = urlparse.urlparse(my_url) # ParseResult(scheme='http', netloc='domain.com', path='/some/address', params='', query='some=data&page=3&another=param', fragment='')
new_url = urlparse.ParseResult(p.scheme, p.netloc, p.path, p.params, '', p.fragment)  # remove query path
valid_url = urlparse.urlunparse(parsed_url)  # http://domain.com/some/address

显然,您需要根据实际情况调整此解决方案,因为有问题的模拟数据不足以清楚地知道应该如何解析url

这里不需要使用正则表达式,只需简单地应用字符串操作即可

value = 'http://bla bla bla/?another bla bla bla&page=3'
index =  value.find(r'&page=')
if index > 0:
    result = value[:index]
else:
    result = value

相关问题 更多 >