Шаблон регулярного выражения для этого rtmp: // имя пользователя: пароль @ xxxx: порт / приложение / имя потока для JAVA - PullRequest
0 голосов
/ 11 октября 2019

Может ли кто-нибудь помочь с этим шаблоном регулярного выражения: rtmp: // имя пользователя: пароль @ xxxx: порт / приложение / имя потока

Где:

  • Группа 1 - это узел: xxxx
  • Группа 2 - это порт
  • Группа 3 - это приложение
  • Группа 4 - это имя потока

Я уже пробовал следующий шаблон, но это не похоже на группы, как я ожидаю:

^rtmp://.*?:?.*?[@?]([^/:]+)(:(\\d+))*:?.*/([^/]+)(/(.*))*$

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Как всегда, вам следует избегать использования регулярных выражений, если вы можете полагаться на анализатор, специфичный для данных, которые вы анализируете.

В вашем случае вы анализируете URI, поэтому я предлагаю вам положиться наjava.net.URI класс:

URI uri = new URI("rtmp://username:password@x.x.x.x:port/application/streamname");
uri.getHost(); // your desired hostname
uri.getPort(); // your desired port
uri.getPath().split('/')[1]; // your desired application
uri.getPath().split('/')[2]; // your desired streamname

Вы можете попробовать здесь .

1 голос
/ 11 октября 2019

Вы можете попробовать это регулярное выражение:

rtmp.*?@(.*?):(\d+)\/(\w+)\/(\w+)

Демо: Здесь

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