如何获取 SIP URI 的一部分?例如我有 URI sip:username@sip.somedomain.com
,我需要 getusername
并且我使用[^sip:](.*)[$@]+
表达式,但出现的结果是username@
. 如何从匹配中排除@
?
问问题
18392 次
3 回答
8
这应该做的工作
(?<=^sip:)(.*)(?=[$@])
于 2013-03-17T22:58:19.237 回答
1
如果前瞻在您的正则表达式风格中不可用(例如 POSIX 正则表达式缺少它们),您仍然可以匹配您最终不想返回的正则表达式中的部分字符串,如果您使用捕获组并且只获取一些内容其中。
例如
^sip:(.*?)[$@]+
然后只返回第一个捕获组的内容
于 2013-03-17T23:04:27.510 回答
1
使用前瞻而不是实际匹配@:
^sip:(.*?)(?=@|\$)
要么你使用了一种非常奇怪的正则表达式风格,要么你的起始字符类是一个错误。[^sip:]
匹配不属于s
、i
或p
的单个字符:
。我也不确定这个$
字符的用途,因为这不是 SIP 语法的一部分。
于 2013-03-17T22:59:45.690 回答