encontrar en nombres de archivos de texto, preg_match_all

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.

preguntado el 12 de junio de 12 a las 22:06

Creo que deberías usar los delimitadores. ^' and $` porque supongo que estás haciendo lo preg_match_all a un texto u oración. -

1 Respuestas

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 or haz tu propia pregunta.