2013-03-17 3 views
2

Как я могу получить часть SIP URI? Например, у меня есть URI sip:[email protected], мне нужно получить только username, и я использую выражение [^sip:](.*)[[email protected]]+, но результат был [email protected]. Как я могу исключить из соответствия @?Регулярные выражения в середине строки

+0

Название вопроса вводит в заблуждение – mbomb007

ответ

1

Используйте предпросмотр вместо фактического сопоставления @:

^sip:(.*?)([email protected]|\$) 

Либо вы используете очень странный регулярок вкус, или ваш класс Отправной символ является ошибкой , [^sip:] соответствует одному символу, который не относится к s, i, p или :. Я также не уверен, для чего нужен символ $, поскольку это не является частью синтаксиса SIP.

0

Если в вашем регулярном выражении нет доступных выражений (например, для них не существует регулярных выражений POSIX), вы все равно можете сопоставлять части строки в своем регулярном выражении, которые вы в конечном итоге не хотите возвращать, если вы используете группы захвата и только захватите содержание некоторых из них.

Например

^sip:(.*?)[[email protected]]+ Затем возвращают только содержимое первой группы захвата

Смежные вопросы