Точно так же, как все понимают используемый словарь, общая структура URL выглядит следующим образом:
http :// www.a.com / path/to/resource.html ? query=value # fragment
{scheme} :// {authority} / {path} ? {query} # {fragment}
Путь состоит из пути и ресурса, в случае path/to/resource.html
путь равен path/to/
, а ресурс - resource.html
.
Плохо, противно и жестоко:
HTML, как его можно найти в дикой природе, может быть плохим, противным и грубым, , хотя довольно часто далеко не коротким. В этом бедном, грязном и жестоком мире случаются живые ссылки, которые сами по себе могут быть бедными, неприятными и грубыми, несмотря на то, что URL-адреса должны соответствовать стандартам . Итак, помня об этом, я представляю вам проблему ...
Проблема:
Я пытаюсь создать регулярное выражение для удаления ресурса из пути URL-адреса, что необходимо при наличии ссылки на веб-странице, которая является относительным путем. Например:
- Я посещаю
www.domain.com/path/to/page1.html
.
- Существует относительная ссылка на
/page2.html
- Удалите
/page1.html
из URL
- Добавить
/page2.html
к www.domain.com/path/to
Результат: в www.domain.com/path/to/page2.html
Я застрял на шаге 3!
Я выделил путь и ресурс, но теперь я хочу разделить их. Регулярное выражение, которое я пытался найти, выглядит так: \z([^\/]\.[^\/])
В C # такое же регулярное выражение: "\\z([^/]\\.[^/])"
В переводе на английский язык регулярное выражение должно означать: соответствует концу строки, который включает все символы, разделенные точкой, если эти символы не являются косыми чертами.
Я пробовал это регулярное выражение, но в настоящее время оно терпит неудачу. Каков правильный запрос для достижения указанного результата.
Вот несколько примеров:
/ path / to / resource.html => / path / to / и resource.html
/pa.th/to/resource.html => /pa.th/to/ и resource.html
/path/to/resource.html/ => /path/to/resource.html/
/*I#$>/78zxdc.78&(!~ => / * I # $> / и 78zxdc.78 & (! ~
Спасибо за вашу помощь!