"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo hacer coincidir las URL mediante expresiones regulares?

¿Cómo hacer coincidir las URL mediante expresiones regulares?

Publicado el 2024-11-10
Navegar:788

How to Match URLs Using Regular Expressions?

Coincidencia de URL con expresiones regulares

Las expresiones regulares pueden resultar desalentadoras inicialmente, pero ofrecen poderosas capacidades de coincidencia de patrones para diversos tipos de datos. En el contexto de la extracción de URL, es necesario un patrón flexible para adaptarse a las variaciones en los formatos de URL.

Una expresión regular sólida que puede capturar URL con o sin protocolos principales (por ejemplo, "http://www" o " www") es:

((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 expresión en PHP, enciérrela entre comillas dobles y pásela a la función preg_match junto con la URL que desea evaluar. Por ejemplo:

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

De manera similar, para URL con protocolos:

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

Este patrón debe cubrir una amplia gama de formatos de URL y, al mismo tiempo, proteger contra posibles entradas maliciosas que contengan caracteres como "/".

Declaración de liberación Este artículo se reimprime en: 1729557858 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3