2010-01-08 38 views
7

¿Cuál es la sintaxis correcta para que una expresión regular encuentre varias ocurrencias de la misma cadena con preg_match en PHP?PHP preg_match para encontrar varias ocurrencias

Por ejemplo encontrar si la cadena siguiente aparece dos veces en el siguiente párrafo:

$string = "/brown fox jumped [0-9]/"; 

$paragraph = "The brown fox jumped 1 time over the fence. The green fox did not. Then the brown fox jumped 2 times over the fence" 

if (preg_match($string, $paragraph)) { 
echo "match found"; 
}else { 
echo "match NOT found"; 
} 
+0

intento con http: // www .regex-tester.de/regex.html – Gordon

Respuesta

23

Desea usar preg_match_all(). Así es como se vería en tu código. La función real devuelve el número de elementos encontrados, pero la matriz $matches llevará a cabo los resultados:

<?php 
$string = "/brown fox jumped [0-9]/"; 

$paragraph = "The brown fox jumped 1 time over the fence. The green fox did not. Then the brown fox jumped 2 times over the fence"; 

if (preg_match_all($string, $paragraph, &$matches)) { 
    echo count($matches[0]) . " matches found"; 
}else { 
    echo "match NOT found"; 
} 
?> 

seria:

2 se han encontrado coincidencias

+0

Recibo una advertencia La transferencia de tiempo de llamada ha quedado obsoleta. – Dipen

+5

elimina la "&" de "& $ coincidencias" – Sam

Cuestiones relacionadas