Regex для SIP и SIPS URI - PullRequest
       16

Regex для SIP и SIPS URI

0 голосов
/ 25 марта 2019

Пример SIP URI

   sip:alice@atlanta.com
   sip:alice:secretword@atlanta.com;transport=tcp
   sips:alice@atlanta.com?subject=project%20x&priority=urgent
   sip:+1-212-555-1212:1234@gateway.com;user=phone
   sips:1212@gateway.com
   sip:alice@192.0.2.4
   sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com
   sip:alice;day=tuesday@atlanta.com

регулярное выражение, которое я создал ^(sip|sips):([^@]+)@(.+)

То, что я пытаюсь достичь, это @ не обязательно, если @ есть что-то до и после @ должно бытьтам, иначе после глотка: все может быть принято

1 Ответ

2 голосов
/ 25 марта 2019

Вы можете использовать

^(sips?):([^@]+)(?:@(.+))?$

См. Демоверсию regex .

Детали

  • ^ - начало строки
  • (sips?) - Группа 1: sip или sips
  • : - двоеточие
  • ([^@]+) - Группа 2: 1 или более символов, отличных от @
  • (?:@(.+))? - необязательная группа без захвата:
    • @ - @ char
    • (.+) - Группа 3: любые 0+ символов, кроме символов разрыва строки, как можно больше
  • $ - конец строки.

ПРИМЕЧАНИЕ: если вы используете шаблон с методом .matches(), ^ и $ являются избыточными и могут быть удалены из шаблона, так как этот метод требует полного совпадения строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...