Autor
|
Tema: Expresion regular no me funciona :( (Leído 2,047 veces)
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Buen dia. Tengo el sig. hash: [6534454|10|356|http://mipagina.com/imagen.jpg|Titulo de la publicacion - Dato #123, mas cosas|10|10|5|2] Y la expresion que estoy pasando es: preg_match_arr( $hash, $exp, $buf );/\[([0-9a-zA-Z]{1,})\|([0-9]{1,})\|([0-9.,]{1,})\|([0-9a-zA-Z:._\-/]{1,})\|([0-9a-zA-Z.,:+_\-/+\s\S#]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\]/g Probe mi expresion en http://regexr.com/ y me dice 1 match. Pero en mi programa no me retorna el array, me retorna como si no hubiera habido expresión $data= '[6534454|10|356|http://mipagina.com/imagen.jpg|Titulo de la publicacion - Dato #123, mas cosas|10|10|5|2]';
preg_match_all( '/\[([0-9a-zA-Z]{1,})\|([0-9]{1,})\|([0-9.,]{1,})\|([0-9a-zA-Z:._\-/]{1,})\|([0-9a-zA-Z.,:+_\-/+\s\S#]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\]/g', $data, $out );
echo ( !is_array($out) ? '... No es array...':'... si es array...');
# me imprime: "No es array"
|
|
|
En línea
|
|
|
|
Shell Root
|
Intenta así, $Data = '[6534454|10|356|http://mipagina.com/imagen.jpg|Titulo de la publicacion - Dato #123, mas cosas|10|10|5|2]'; $ExpReg = '@\[([0-9a-zA-Z]{1,})\|([0-9]{1,})\|([0-9.,]{1,})\|([0-9a-zA-Z:._\-/]{1,})\|([0-9a-zA-Z.,:+_\-/+\s\S#]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\|([0-9]{1,})\]@';
|
|
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Y como esta eso del uso de la @ ???
|
|
|
En línea
|
|
|
|
Shell Root
|
Es un delimintador igual que \ o /
|
|
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
De antemano gracias [b.Alex.[/] por su tiempo, pero fijate que la expresion regular no funciona cuando hay mas de una incidencia Por ejemplo, tengo el siguiente hash: [6534454|3|356|http://miweb.com/imagen.jpg|Titulo uno|10|10|5|2][368582181|3|452|http://miweb.com/otrafoto.jpg|Titulo dos|10|10|5|2] Se supone que deberia retornar un arreglo de dos, que dentro lleve los elementos .... El hash es conformado asi: [ID|numero|numero|imagen|titulo|numero|numero|numero|numero] El [ marca inicio. El ] marca fin. Este hash lo envio por API a otro servidor donde se supone paso el preg_match_all y hago la insercion en la BDD, pero sigue igual.. no extrae la info bien.... Solo me retorna una coincidencia en vez de dos y mandarme un array de dos con su respectiva info. Saludos ! ---------------- SOLUCIONADOSolo omiti el \S de la expresión regular.
|
|
« Última modificación: 28 Marzo 2016, 18:53 pm por Diabliyo »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Expresión regular
« 1 2 3 »
PHP
|
IWKY
|
29
|
19,555
|
25 Enero 2010, 23:57 pm
por ~ Yoya ~
|
|
|
Problema con expresión regular
PHP
|
egyware
|
7
|
5,704
|
12 Febrero 2010, 00:32 am
por ~ Yoya ~
|
|
|
ayudita expresion regular
« 1 2 3 4 »
Programación Visual Basic
|
viher
|
38
|
11,703
|
6 Noviembre 2010, 21:25 pm
por Psyke1
|
|
|
Ayuda con Expresión Regular
Desarrollo Web
|
Shell Root
|
4
|
4,143
|
10 Abril 2011, 22:26 pm
por Shell Root
|
|
|
Expresión regular email
PHP
|
Littl3
|
1
|
2,829
|
20 Septiembre 2011, 23:06 pm
por ~ Yoya ~
|
|