栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SIP URI变量的Python正则表达式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SIP URI变量的Python正则表达式?

您的示例中没有标题和参数,因此我不知道它们如何显示。但是您可以使用以下代码来匹配示例字符串:

[EDIT1-根据OP的新示例URI添加了正则表达式以匹配主机名字符串和对user:password的支持]

[EDIT2-添加了参数和标头正则表达式,并在正则表达式的“或”部分添加了更多注释]

import reuriList = [        'sip:192.1.2.3',        'sip:123@192.1.2.3',        'sip:192.1.2.3:5060',        'sip:123@[2620:0:2ef0:7070:250:60ff:fe03:32b7]',        'sip:[2620:0:2ef0:7070:250:60ff:fe03:32b7]',        'sip:[2620:0:2ef0:7070:250:60ff:fe03:32b7]:5060',        'sips:support@voip.example.com',        'sip:22444032@voip.example.com:6000',        'sip:support:pass@212.123.1.213',        'sip:support:pass@212.123.1.213;urlparams=test',        'sip:support:pass@212.123.1.213?auth=basic',        'sip:support:pass@212.123.1.213;urlparams=test?auth=basic',        ]mPattern = re.compile(  '(?P<scheme>w+):' #Scheme  +'(?:(?P<user>[w.]+):?(?P<password>[w.]+)?@)?' #User:Password  +'[?(?P<host>' #Begin group host      +'(?:d{1,3}.d{1,3}.d{1,3}.d{1,3})|' #IPv4 address Host Or      +'(?:(?:[0-9a-fA-F]{1,4}):){7}[0-9a-fA-F]{1,4}|' #IPv6 address Host Or      +'(?:(?:[0-9A-Za-z]+.)+[0-9A-Za-z]+)'#Hostname string  +')]?:?' #End group host  +'(?P<port>d{1,6})?' #port  +'(?:;(?P<params>[^?]*))?' # parameters  +'(?:?(?P<headers>.*))?' # headers  )groupNamesList = ['scheme', 'user', 'password', 'host', 'port', 'params', 'headers'] #List of group Namesfor uri in uriList: #iterate through the list of uri    mObject = mPattern.search(uri) #pattern search    if mObject: #if you find a match        groupStrings = [mObject.group(groupName) if mObject.group(groupName) else '' for groupName in groupNamesList] #extract your groupStrings        print('Scheme: {0}, User: {1}, Password: {2}, Host: {3}, Port: {4}, Params: {5}, Headers: {6}'.format(*groupStrings)) #print groupStrings

我得到的输出:

Scheme: sip, User: , Password: , Host: 192.1.2.3, Port: , Params: , Headers: Scheme: sip, User: 123, Password: , Host: 192.1.2.3, Port: , Params: , Headers: Scheme: sip, User: , Password: , Host: 192.1.2.3, Port: 5060, Params: , Headers: Scheme: sip, User: 123, Password: , Host: 2620:0:2ef0:7070:250:60ff:fe03:32b7, Port: , Params: , Headers: Scheme: sip, User: , Password: , Host: 2620:0:2ef0:7070:250:60ff:fe03:32b7, Port: , Params: , Headers: Scheme: sip, User: , Password: , Host: 2620:0:2ef0:7070:250:60ff:fe03:32b7, Port: 5060, Params: , Headers: Scheme: sips, User: support, Password: , Host: voip.example.com, Port: , Params: , Headers: Scheme: sip, User: 22444032, Password: , Host: voip.example.com, Port: 6000, Params: , Headers: Scheme: sip, User: support, Password: pass, Host: 212.123.1.213, Port: , Params: , Headers: Scheme: sip, User: support, Password: pass, Host: 212.123.1.213, Port: , Params: urlparams=test, Headers: Scheme: sip, User: support, Password: pass, Host: 212.123.1.213, Port: , Params: , Headers: auth=basicScheme: sip, User: support, Password: pass, Host: 212.123.1.213, Port: , Params: urlparams=test, Headers: auth=basic

试试看,看看是否适合您



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392269.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号