7.12. Wyodrębnianie ścieżki z adresu URL

Problem

Chcemy wyodrębnić ścieżkę z łańcucha zawierającego adres URL. Na przykład z łańcuchów http://www.regexcookbook.com/index.html lub /index.html#fragment nasze wyrażenie powinno wyodrębnić fragment /index.html.

Rozwiązanie

Wyodrębnia ścieżkę z łańcucha, o którym wiadomo, że zawiera prawidłowy adres URL. Poniższe wyrażenie pasuje do wszystkich adresów URL, także tych, które nie definiują ścieżki:

  • \A
    # Pomija ewentualne części schematu i serwera:
    ([a-z][a-z0-9+\-.]*:(//[^/?#]+)?)?
    # Ścieżka:
    ([a-z0-9\-._~%!$&'()*+,;=:@/]*)
    • Opcje wyrażenia regularnego: Swobodne stosowanie znaków białych, ignorowanie wielkości liter

    • Odmiany wyrażeń regularnych: .NET, Java, PCRE, Perl, Python, Ruby

  • ^([a-z][a-z0-9+\-.]*:(//[^/?#]+)?)?([a-z0-9\-._~%!$&'()*+,;=:@/]*) ...

Get Wyrażenia regularne. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.