encontrar en nombres de archivos de texto, preg_match_all
Frecuentes
Visto 438 veces
0
quiero encontrar en nombres de archivos de texto (por ejemplo, nombre.txt). ¿Podría sugerirme la expresión regular para usar en preg_match_all()? Creo alguna expresión regular:
preg_match_all("/^[a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}$/", $string, $w);
Pero, siempre obtenga un resultado vacío.
1 Respuestas
0
simplemente elimine estos símbolos (^ y $) en su expresión de registro
Esto funciona para mi:
preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}!", $string, $w);
^ - Coincide con el comienzo de la cadena.
$ - Coincide con el final de la cadena.
Si su archivo se coloca en el texto, puede omitir estos símbolos.
Usaría la siguiente expresión de registro, porque la que escribiste encuentra los archivos con una extensión compuesta de 1 a 3 letras, pero generalmente la extensión contiene 3 letras (.doc, txt)
Aquí está el ejemplo de trabajo:
$string=" some text name.txt some text hello.doc";
preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{3}!", $string, $w);
print_r($w);
Salida:
Array ( [0] => Array ( [0] => name.txt ) )
Respondido 05 Jul 12, 20:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas preg-match preg-match-all or haz tu propia pregunta.
Creo que deberías usar los delimitadores.
^' and
$` porque supongo que estás haciendo lopreg_match_all
a un texto u oración. - Juan Ramón