Как захватить поддомен в регулярных выражениях? - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь извлечь имя пользователя из Tumblr. То есть регулярное выражение должно совпадать с asdf в следующей тестовой строке:

https://asdf.tumblr.com/
http://asdf.tumblr.com/faq
www.asdf.tumblr.com/
asdf.tumblr.com

В принципе, я думаю, что мне нужно сделать что-то вроде совпадения от точки или sla sh до следующего точка, но у меня проблемы с тем, чтобы это работало в каждом случае. В настоящее время у меня есть это:

.*[\/|\.](.*)\.tumblr\.com.*

Однако, это не в состоянии захватить последнюю группу (asdf.tumblr.com). Я пытался изменить его безрезультатно. Можно ли это сделать?

1 Ответ

3 голосов
/ 12 февраля 2020

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

/[^.\/]+(?=\.tumblr\.com)/i

Демонстрация RegEx

Подробности RegEx:

  • [^.\/]+: соответствует 1 или более любому символу, который не является . и /
  • (?=\.tumblr\.com): Позитивный прогноз, обеспечивающий .tumblr.com на следующей позиции

Код:

let x = /([^.\/]+)(?=\.tumblr\.com)/;
let y = "https://asdf.tumblr.com";

console.log( y.match(x)[1] );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...