Foros del Web » Programando para Internet » PHP »

Problemas con preg_match

Estas en el tema de Problemas con preg_match en el foro de PHP en Foros del Web. Esoty tratando de que preg_match me haga algo coherente pero hasta ahora es como si no funcionara en lo más minimo. Tengo este código para ...
  #1 (permalink)  
Antiguo 21/01/2009, 11:58
Avatar de FabianSN  
Fecha de Ingreso: enero-2007
Ubicación: SNicolas, BsAs, Argentina
Mensajes: 96
Antigüedad: 17 años, 10 meses
Puntos: 2
Problemas con preg_match

Esoty tratando de que preg_match me haga algo coherente pero hasta ahora es como si no funcionara en lo más minimo.

Tengo este código para validar contraseñas introducidas en un form
Código PHP:
$resp=preg_match('^[a-zA-Z0-9]{4,10}$'$_POST[fldnueva]);
echo 
"Preg_match:$resp, Nueva: $_POST[fldnueva]<br>";
if (
$resp>0) {
    echo 
"TODO EN ORDEN, Clave introducida $_POST[fldnueva]";
} else {
    echo 
"La clave nueva debe ser de 4 a 10 caracteres y debe mezclar letras y numeros<br>";
                } 
Con este patron me dá el error:
Cita:
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in ...
He buscado en internet otros tipos de patrones para entender la forma de uso, pero es como si dieran error o no hiciera exactamente lo que espero que haga.

¿Hay que habilitar alguna biblioteca o hacer algún seteo previo para poder usar preg_match?

Si alguien puede ayudarme se lo agradezco mucho, realmente se me ha secado el cerebro tanto hacer pruebas con el preg_match.

Gracias.
__________________
Letra de Canciones
  #2 (permalink)  
Antiguo 21/01/2009, 12:13
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Problemas con preg_match

El patron esta mal:
^[a-zA-Z0-9]{4,10}$

Deberia ser:
/^[a-zA-Z0-9]{4,10}$/

Siempre debes meter el patron dentro de "/", o cualquier otro caracter, mientras que este al princpio y final de la expresion.

http://www.php.net/manual/es/function.preg-match.php
  #3 (permalink)  
Antiguo 21/01/2009, 13:49
Avatar de FabianSN  
Fecha de Ingreso: enero-2007
Ubicación: SNicolas, BsAs, Argentina
Mensajes: 96
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Problemas con preg_match

Increible!!!,

Hace 2 años que programo en PHP, hoy perdí como 3 horas tratando de entender que problema tenía con los patrones y expresiones regulares, ya que nunca los había utilizado, pero jamás se me ocurrió que podían llegar a tener una barra como cierre o que tuviesen algún caracter de cierre.

Es más, solo buscaba entender los patrones y olvide focalizarme en su notación.

Gracias Ronruby, he visto su nick en posteos del mismo tema pero del año 2002.

Saludos.
__________________
Letra de Canciones
  #4 (permalink)  
Antiguo 08/08/2009, 17:35
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 15 años, 3 meses
Puntos: 4
Pregunta Respuesta: Problemas con preg_match

Cita:
Iniciado por Ronruby Ver Mensaje
El patron esta mal:
^[a-zA-Z0-9]{4,10}$

Deberia ser:
/^[a-zA-Z0-9]{4,10}$/

Siempre debes meter el patron dentro de "/", o cualquier otro caracter, mientras que este al princpio y final de la expresion.

http://www.php.net/manual/es/function.preg-match.php


podrian por favor explicarme la sintaxt de esta funcion
preg_match ???? gracias
^[a-zA-Z0-9]{4,10}$ ???
como hago para crear esta sintaxis? depnde de q? como es su esctructura ?
  #5 (permalink)  
Antiguo 08/08/2009, 19:04
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 10 meses
Puntos: 14
Respuesta: Problemas con preg_match

Estimado ricardoernes , no soy un erudito ni una luz en el manejo de expresiones regulares , sencillamente porque no se me presento situaciones donde exclusivamente dependa de ellas para resolver un problema , de todas formas le explico esa expresión que usted menciona.

La expresión regular con el simbolo ^ , indica que debe comenzar al principio de la cadena , luego con los corchetes indica un rango de valores permitidos , este rango sera la A , desde la z hasta la A mayuscula , aunque deberia ser al revez esta mal expresado a mi gusto eso , luego desde la Z hasta la O y luego el 9, esto con un total de caracteres /repeticiones entre 4 y 10 , eso lo expresa mediante la notación con corchetes asi {x,xx} y el simbolo $ determina que ahi debe finalizar la cadena o expresión regular.

Saludos!
  #6 (permalink)  
Antiguo 08/08/2009, 19:16
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 15 años, 3 meses
Puntos: 4
De acuerdo Respuesta: Problemas con preg_match

Cita:
Iniciado por jonatanc Ver Mensaje
Estimado ricardoernes , no soy un erudito ni una luz en el manejo de expresiones regulares , sencillamente porque no se me presento situaciones donde exclusivamente dependa de ellas para resolver un problema , de todas formas le explico esa expresión que usted menciona.

La expresión regular con el simbolo ^ , indica que debe comenzar al principio de la cadena , luego con los corchetes indica un rango de valores permitidos , este rango sera la A , desde la z hasta la A mayuscula , aunque deberia ser al revez esta mal expresado a mi gusto eso , luego desde la Z hasta la O y luego el 9, esto con un total de caracteres /repeticiones entre 4 y 10 , eso lo expresa mediante la notación con corchetes asi {x,xx} y el simbolo $ determina que ahi debe finalizar la cadena o expresión regular.

Saludos!
gracias gracias gracias !!!
  #7 (permalink)  
Antiguo 08/08/2009, 20:59
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con preg_match

Cita:
Iniciado por jonatanc Ver Mensaje
luego con los corchetes indica un rango de valores permitidos , este rango sera la A , desde la z hasta la A mayuscula , aunque deberia ser al revez esta mal expresado a mi gusto eso , luego desde la Z hasta la O y luego el 9
Perdón?

Como bien dices, los corchetes expresan un conjunto de valores posibles (OJO, un conjunto), y dentro de él se puede establecer rangos. Para indicar que se trata de un rango se coloca el caracter inicial del rango, luego el guión, y finalmente el caracter final del rango. Por lo tanto, la interpretación correcta de esa porción de dicha expresión regular, y totalmente distinta a la que tu expones, sería:

[a-zA-Z0-9]
  • a-z: Todos los caracteres de la a a la z (minúsculas)
  • A-Z: Todos los caracteres de la A a la Z (mayúsculas)
  • 0-9 :Todos los dígitos entre 0 (cero) y 9
Saludos,
  #8 (permalink)  
Antiguo 08/08/2009, 21:04
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 10 meses
Puntos: 14
Respuesta: Problemas con preg_match

Esta bien como he dicho no soy experto en el tema ni conozco mucho , expuse lo que conocia , buena sugerencia.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:45.