用于分析网站链接的正则表达式

时间:2018-10-08 15:24:17

标签: regex

我试图创建一个正则表达式字符串来分析链接

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

2 个答案:

答案 0 :(得分:1)

此正则表达式为您提供了站点,用户和操作的命名捕获,

(?=(?<site>www.*$))(?=.*u=(?<user>(?:[^&]*)))(?=.*action=(?<action>(?:[^&]*)))

在这里播放

https://regex101.com/r/1VAgSO/1

答案 1 :(得分:0)

Python 3

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