"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como combinar URLs usando expressões regulares?

Como combinar URLs usando expressões regulares?

Publicado em 2024-11-10
Navegar:462

How to Match URLs Using Regular Expressions?

Correspondência de URLs com expressões regulares

Expressões regulares podem ser assustadoras inicialmente, mas oferecem recursos poderosos de correspondência de padrões para diversos tipos de dados. No contexto de extração de URLs, é necessário um padrão flexível para acomodar variações nos formatos de URL.

Uma expressão regular robusta que pode capturar URLs com ou sem protocolos principais (por exemplo, "http://www" ou " www") é:

((https?|ftp)://)? // Optional SCHEME
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9 $_%-]\.?) )*/? // Path
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9 $%_.-]*)? // Optional Anchor

Para usar esta expressão em PHP, coloque-a entre aspas duplas e passe-a para a função preg_match junto com a URL que deseja avaliar. Por exemplo:

$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}

Da mesma forma, para URLs com protocolos:

$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}

Esse padrão deve abranger uma ampla variedade de formatos de URL e, ao mesmo tempo, proteger contra possíveis entradas maliciosas contendo caracteres como "/".

Declaração de lançamento Este artigo foi reimpresso em: 1729557858 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3