preg_match_all preg_match preg_grep online ejemplos coincidencias buscar php preg-match preg-match-all

php - preg_grep - preg_match_all online



PHP preg_match y preg_match_all funciones (4)

El manual de PHP puede ayudarte.

Háganos saber si tiene problemas para entender.

Me gustaría saber qué hacen las funciones preg_match y preg_match_all y cómo usarlas.


Tanto las funciones preg_match como http://php.net/manual/en/function.preg-match-all.php en PHP usan expresiones regulares compatibles con Perl.

Puede ver esta serie para comprender completamente las expresiones regulares compatibles con Perl: https://www.youtube.com/watch?v=GVZOJ1rEnUg&list=PLfdtiltiRHWGRPyPMGuLPWuiWgEI9Kp1w

preg_match ($ patrón, $ sujeto, & $ coincidencias, $ banderas, $ compensación)

La función preg_match se usa para buscar un $pattern particular en una cadena $subject y cuando se encuentra el patrón la primera vez, deja de buscarlo. Produce coincidencias en las $matches , donde $matches[0] contendrá el texto que coincide con el patrón completo, $matches[1] tendrá el texto que coincidirá con el primer sub-patrón entre paréntesis capturado, y así sucesivamente.

Ejemplo de preg_match()

<?php preg_match( "|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $matches ); var_dump($matches);

Salida:

array(2) { [0]=> string(16) "<b>example: </b>" [1]=> string(9) "example: " }

preg_match_all ($ patrón, $ sujeto, & $ coincidencias, $ banderas)

La función preg_match_all busca todas las coincidencias en una cadena y las genera en una matriz multidimensional ( $matches ) ordenadas de acuerdo con $flags . Cuando no se pasa el valor de $flags , ordena los resultados para que $matches[0] sea ​​una matriz de coincidencias de patrones completos, $matches[1] sea ​​una matriz de cadenas que $matches[1] con el primer sub-patrón entre paréntesis, y así sucesivamente.

Ejemplo de preg_match_all()

<?php preg_match_all( "|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $matches ); var_dump($matches);

Salida:

array(2) { [0]=> array(2) { [0]=> string(16) "<b>example: </b>" [1]=> string(36) "<div align=left>this is a test</div>" } [1]=> array(2) { [0]=> string(9) "example: " [1]=> string(14) "this is a test" } }


Un ejemplo concreto:

preg_match("/find[ ]*(me)/", "find me find me", $matches): $matches = Array( [0] => find me [1] => me ) preg_match_all("/find[ ]*(me)/", "find me find me", $matches): $matches = Array( [0] => Array ( [0] => find me [1] => find me ) [1] => Array ( [0] => me [1] => me ) ) preg_grep("/find[ ]*(me)/", ["find me find me", "find me findme"]): $matches = Array ( [0] => find me find me [1] => find me findme )


preg_match deja de cuidar el primer partido. preg_match_all , por otro lado, continúa buscando hasta que termina de procesar toda la cadena. Una vez que se encuentra la coincidencia, utiliza el resto de la cadena para intentar aplicar otra coincidencia.

http://php.net/manual/en/function.preg-match-all.php