如何使用库re解析python中的字符串?
我有以下字符串,应该进行分析:如何使用库re解析python中的字符串?,python,regex,Python,Regex,我有以下字符串,应该进行分析: http_proxy=172.55.30.14:80 https_proxy=Administrator:some_password@172.55.30.27:443 我想从这个字符串中提取 protocol = "http" (or "https") proxy_server = 172.55.30.14 proxy_port = 80 如果设置了密码,还应初始化变量username和password: username = Administrator pa
http_proxy=172.55.30.14:80
https_proxy=Administrator:some_password@172.55.30.27:443
我想从这个字符串中提取
protocol = "http" (or "https")
proxy_server = 172.55.30.14
proxy_port = 80
如果设置了密码,还应初始化变量username和password:
username = Administrator
password = some_password
我有一个想法,使用拆分方法拆分它:
res = re.split(r':', line)
有什么办法可以做得更好吗 您可以使用以下代码:
import re
# s="""http_proxy=172.55.30.14:80"""
s="""https_proxy=Administrator:some_password@172.55.30.27:443"""
regex=r"^(?P<xprotocol>http[s]?)_proxy=((?P<xusername>\w+):(?P<xpassword>\w+)@)?(?P<xserver>[\d.]+):(?P<xport>\d+)"
res=re.match(regex,s,re.I)
print("protocol: {}".format(res.group("xprotocol")))
print("proxy_server: {}".format(res.group("xserver")))
print("proxy_port: {}".format(res.group("xport")))
print("username: {}".format(res.group("xusername")))
print("password: {}".format(res.group("xpassword")))
一些注意事项:
–http[s]?=不含协议
–\w=一个字母,包括a->z、a->z、0->9和_
-+=一个或多个。So\w+=一个或多个字母
–组?=零个或一个文本组
–\d+=一个或多个数字,包括0->9一点也不!分享知识总是一件有趣的事情D