Как переписать регулярное выражение PCRE для поиска поддоменов в регулярное выражение Javascript? - PullRequest
0 голосов
/ 01 июля 2019

Как преобразовать это регулярное выражение (поиск поддоменов)

http[s]?:\/\/(.*?)\..*\/

в регулярное выражение JavaScript / ECMAScript?

Я хочу найти поддомен, а не полную строку. В PCRE скобки указывают часть интересующей меня строки, но в JavaScript это, похоже, не работает.

https://regex101.com/r/xpO5Wc/1

enter image description here

против

https://regex101.com/r/fQT1zC/2

enter image description here

1 Ответ

1 голос
/ 08 июля 2019

Полагаю, ответ в том, что переписывание на самом деле не нужно.
И это похоже на проблему с дисплеем.

Однако в интересах получения лучшего результата регулярного выражения, один
как это может дать лучшие результаты:

/^http[s]?:\/\/(.*?)\.?([^\/.\r\n?]+\.[^\/.\r\n?]+)(?=\/|$)/mg

https://regex101.com/r/JE1AHF/1

Группа 1 получает субдомены
Группа 2 получает TLD и первый поддомен.

Версия для чтения:

 ^ 
 http s? ://
 ( .*? )                       # (1)
 \.? 
 ( [^/.\r\n?]+ \. [^/.\r\n?]+ )  # (2)
 (?= / | $ )
...