Получение частей URL (Regex)

Я опоздал на вечеринку на regexes несколько лет, но удивлен, что regexes никто не упомянул, что в url спецификации Uniform Resource regex Identifier есть section on parsing URIs with a regular expression. Регулярное regexp выражение, написанное Бернерсом-Ли regexp и др., Выглядит следующим regex образом:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 12            3  4          5       6  7        8 9

Цифры во второй строке regular-expression выше предназначены только language-agnostic для облегчения чтения; они regex указывают опорные точки для perlre каждого подвыражения (т. е. каждого парные url скобки). Мы ссылаемся на regularexpression значение, соответствующее language-agnostic подвыражению как $. Например, соответствие url приведенного выше выражения

http://www.ics.uci.edu/pub/ietf/uri/#Related

приводит language-agnostic к следующим совпадениям подвыражения:

$1 = http:
$2 = http
$3 = //www.ics.uci.edu
$4 = www.ics.uci.edu
$5 = /pub/ietf/uri/
$6 = 
$7 = 
$8 = #Related
$9 = Related

Как language-agnostic бы то ни было, я обнаружил, что regular-expression мне пришлось избегать косых regexes черт в JavaScript:

^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?

regex

language-agnostic

url

2022-11-06T20:26:31+00:00
Вопросы с похожей тематикой, как у вопроса:

Получение частей URL (Regex)