我试图创建一个正则表达式字符串来分析链接
site- www.example.com/page.php?u=userid&action=add&date=yyyy-MM-dd
我想将命名组创建为:
site: includes the full requested link
user: includes value of u parameter
action: includes value of action parameter
通过上面的例子,结果将是:
site: www.example.com/page.php?u=userid&action=add&date=yyyy-MM-dd
user: userid
action: add
答案 0 :(得分:1)
此正则表达式为您提供了站点,用户和操作的命名捕获,
(?=(?<site>www.*$))(?=.*u=(?<user>(?:[^&]*)))(?=.*action=(?<action>(?:[^&]*)))
在这里播放
答案 1 :(得分:0)
In[2]: from urllib.parse import parse_qs, urlparse
In[3]: url = 'www.example.com/page.php?u=userid&action=add&date=yyyy-MM-dd'
In[4]: parsed_url = urlparse(url)
In[5]: parsed_url
Out[5]: ParseResult(scheme='', netloc='', path='www.example.com/page.php', params='', query='u=userid&action=add&date=yyyy-MM-dd', fragment='')
In[6]: parsed_query = parse_qs(parsed_url.query)
In[7]: parsed_query
Out[7]: {'u': ['userid'], 'action': ['add'], 'date': ['yyyy-MM-dd']}
In[8]: {'site': url, 'user': parsed_query['u'], 'action': parsed_query['action']}
Out[8]:
{'site': 'www.example.com/page.php?u=userid&action=add&date=yyyy-MM-dd',
'user': ['userid'],
'action': ['add']}