7.7. Weryfikacja poprawności adresów URL według ogólnych reguł
Problem
Chcemy sprawdzić, czy dany fragment tekstu zawiera prawidłowy adres URL, zgodny ze standardem RFC 3986.
Rozwiązanie
\A (# Schemat [a-z][a-z0-9+\-.]*: (# Serwer i ścieżka // ([a-z0-9\-._~%!$&'()*+,;=]+@)? # Użytkownik ([a-z0-9\-._~%]+ # Nazwany host |\[[a-f0-9:.]+\] # Host IPv6 |\[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\]) # Host IPvFuture (:[0-9]+)? # Port (/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/? # Ścieżka |# Ścieżka bez serwera (/?[a-z0-9\-._~%!$&'()*+,;=:@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)? ) |# Względny adres URL (bez schematu i serwera) (# Ścieżka względna [a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/? |# Ścieżka bezwzględna (/[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.