有人可以告诉我如何只转换用于正则表达式的链接的用户名和密码?
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)`
抱歉,如果我没有使用正确的条款,但我不熟悉编码。
谢谢
答案 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']