在python中使用正则表达式解析URL

时间:2012-04-04 10:42:38

标签: python regex

我想获取要从URL显示的查询名称和值。 例如。 url='http://host:port_num/file/path/file1.html?query1=value1&query2=value2' 从中解析查询名称及其值并打印它。

2 个答案:

答案 0 :(得分:8)

不要使用正则表达式!使用urlparse

>>> import urlparse
>>> urlparse.parse_qs(urlparse.urlparse(url).query)
{'query2': ['value2'], 'query1': ['value1']}

答案 1 :(得分:2)

我同意最好不要使用regex,最好不要使用urlparse,但这是我的regex。 像urlparse这样的类是专门为了有效处理所有网址而开发的,比regex更可靠,所以如果可以的话,可以使用它们。

>>> x = 'http://www.example.com:8080/abcd/dir/file1.html?query1=value1&query2=value2'
>>> query_pattern='(query\d+)=(\w+)'
>>> # query_pattern='(\w+)=(\w+)'    a more general pattern
>>> re.findall(query_pattern,x)
[('query1', 'value1'), ('query2', 'value2')]