4

如何获取 SIP URI 的一部分?例如我有 URI sip:username@sip.somedomain.com,我需要 getusername并且我使用[^sip:](.*)[$@]+表达式,但出现的结果是username@. 如何从匹配中排除@

4

3 回答 3

8

这应该做的工作

(?<=^sip:)(.*)(?=[$@])
于 2013-03-17T22:58:19.237 回答
1

如果前瞻在您的正则表达式风格中不可用(例如 POSIX 正则表达式缺少它们),您仍然可以匹配您最终不想返回的正则表达式中的部分字符串,如果您使用捕获组并且只获取一些内容其中。

例如

^sip:(.*?)[$@]+然后只返回第一个捕获组的内容

于 2013-03-17T23:04:27.510 回答
1

使用前瞻而不是实际匹配@:

^sip:(.*?)(?=@|\$)

要么你使用了一种非常奇怪的正则表达式风格,要么你的起始字符类是一个错误。[^sip:]匹配不属于sip的单个字符:。我也不确定这个$字符的用途,因为这不是 SIP 语法的一部分。

于 2013-03-17T22:59:45.690 回答