使用正则表达式解析 URL
Parsing URL with regex
我正在尝试在我的正则表达式中组合 if else,基本上如果字符串中存在某些模式,则捕获一种模式,如果不存在,则捕获另一种模式。
字符串是:
'https://www.searchpage.com/searchcompany.aspx?companyId=41490234&page=0&leftlink=true" 并且我想提取 '?"
周围的人员
所以如果'?'在字符串内部检测到,正则表达式应该捕获“?”之后的所有内容标记;如果没有,那么就从头开始捕捉。
我用过:'(.*\?.*)?(\?.*&.*)|(^&.*)'
但是没用...
有什么建议吗?
谢谢!
regex 可能不是这个问题的最佳解决方案...为什么不
my_url.split("?",1)
如果这真的是您想要做的一切
或如其他人所建议的那样
from urlparse import urlparse
print urlparse(my_url)
这个正则表达式:
(^[^?]*$|(?<=\?).*)
捕获:
^[^?]*$
一切,如果没有?
,或者
(?<=\?).*
?
之后的所有内容,如果有
但是,如果您使用的是 URL,则应查看 urllib.parse
(Python 3) or urlparse
(Python 2)。
使用urlparse:
>>> import urlparse
>>> parse_result = urlparse.urlparse('https://www.searchpage.com/searchcompany.aspx?
companyId=41490234&page=0&leftlink=true')
>>> parse_result
ParseResult(scheme='https', netloc='www.searchpage.com',
path='/searchcompany.aspx', params='',
query='companyId=41490234&page=0&leftlink=true', fragment='')
>>> urlparse.parse_qs(parse_result.query)
{'leftlink': ['true'], 'page': ['0'], 'companyId': ['41490234']}
最后一行是 key/value 对的字典。
我正在尝试在我的正则表达式中组合 if else,基本上如果字符串中存在某些模式,则捕获一种模式,如果不存在,则捕获另一种模式。
字符串是: 'https://www.searchpage.com/searchcompany.aspx?companyId=41490234&page=0&leftlink=true" 并且我想提取 '?"
周围的人员所以如果'?'在字符串内部检测到,正则表达式应该捕获“?”之后的所有内容标记;如果没有,那么就从头开始捕捉。
我用过:'(.*\?.*)?(\?.*&.*)|(^&.*)'
但是没用...
有什么建议吗?
谢谢!
regex 可能不是这个问题的最佳解决方案...为什么不
my_url.split("?",1)
如果这真的是您想要做的一切
或如其他人所建议的那样
from urlparse import urlparse
print urlparse(my_url)
这个正则表达式:
(^[^?]*$|(?<=\?).*)
捕获:
^[^?]*$
一切,如果没有?
,或者(?<=\?).*
?
之后的所有内容,如果有
但是,如果您使用的是 URL,则应查看 urllib.parse
(Python 3) or urlparse
(Python 2)。
使用urlparse:
>>> import urlparse
>>> parse_result = urlparse.urlparse('https://www.searchpage.com/searchcompany.aspx?
companyId=41490234&page=0&leftlink=true')
>>> parse_result
ParseResult(scheme='https', netloc='www.searchpage.com',
path='/searchcompany.aspx', params='',
query='companyId=41490234&page=0&leftlink=true', fragment='')
>>> urlparse.parse_qs(parse_result.query)
{'leftlink': ['true'], 'page': ['0'], 'companyId': ['41490234']}
最后一行是 key/value 对的字典。