将网址转换为正则表达式只有网址

时间:2017-08-15 18:05:58

标签: python regex python-3.x

有人可以告诉我如何只转换用于正则表达式的链接的用户名和密码?

link ='http://test.ddns.net:8000/get.php?username=9OsSVedOky&password=Oz2Vmx9GuW&type=list&output=tr'

url ='http://test.ddns.net:8000/get.php?username=[a-zA-Z]|[0-9]|[ $ - @。& +] |& password = [a-zA-Z] | [0-9] | [$ - @。 &安培; +] |&安培;类型=列表&安培;输出= TR'

urls = re.findall(url,link)`

抱歉,如果我没有使用正确的条款,但我不熟悉编码。

谢谢

1 个答案:

答案 0 :(得分:1)

使用正则表达式解析url通常是一个坏主意,尤其是当你对语法的掌握很差时。如果你必须这样做(并且唯一的理由是因为你被告知),那么

>>> import re
>>> rx=re.compile(r"username=(?P<username>[^&]+).*password=(?P<password>[^&]+)")
>>> m = rx.search(link)
>>> m.groupdict()['username']
'9OsSVedOky'
>>> m.groupdict()['password']
'Oz2Vmx9GuW'

但我支持罗宁的建议。它好多了:

>>> import urllib
>>> qsp=urllib.parse.parse_qs(link.partition('?')[2])
>>> qsp['username']
['9OsSVedOky']
>>> qsp['password']
['Oz2Vmx9GuW']