使用Python中的正则表达式解析URL

l7mqbcuq  于 2022-12-02  发布在  Python
关注(0)|答案(2)|浏览(154)

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

klr1opcd

klr1opcd1#

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

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

bfnvny8b2#

我同意最好不要使用正则表达式,最好使用urlparse,但这里是我的正则表达式。
urlparse这样的类是专门为高效地处理所有URL而开发的,比正则表达式可靠得多,所以如果可以的话,请使用它们。

>>> 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')]

相关问题