Foros del Web » Programando para Internet » PHP »

Me ayudan con esta expresion regular?

Estas en el tema de Me ayudan con esta expresion regular? en el foro de PHP en Foros del Web. Hola, soy muy malo en esto de las expresiones regulares y no me sale lo que quiero hacer XD Quiero que me davuelva TRUE si ...
  #1 (permalink)  
Antiguo 23/01/2010, 17:30
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Me ayudan con esta expresion regular?

Hola, soy muy malo en esto de las expresiones regulares y no me sale lo que quiero hacer XD Quiero que me davuelva TRUE si la cadena tiene letras mayusculas, minusculas y numeros
No me funciona de ninguna manera XD
Código PHP:
$cadena "aaA3A";
$patron1 "/^[a-z]*[A-Z]*[0-9]*$/"
Alguien me puede echar un cable? :P
  #2 (permalink)  
Antiguo 23/01/2010, 17:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me ayudan con esta expresion regular?

Cita:
/[a-zA-Z0-9]/
Expresiones PCRE
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/01/2010, 09:08
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Me ayudan con esta expresion regular?

Cita:
Iniciado por pateketrueke Ver Mensaje
/[a-zA-Z0-9]/
Expresiones PCRE
No es lo que magTpeak pide. Él quiere true en el caso de que la cadena contenga minúsculas Y mayúsculas Y números. No alguno de los 3.

La expresión que a mi se me ocurre es muy larga. Preferiría usar 3 expresiones simples.
Alguna idea?
  #4 (permalink)  
Antiguo 24/01/2010, 10:13
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Me ayudan con esta expresion regular?

$patron1 = "/([a-z]*[A-Z]*[0-9]*)*$/";

Igual te diría que si tenés ganas de aprender entiendas la semántica del *.
Acá tenés un texto que explica:
http://boozox.net/php/manual-completo-y-sencillo-de-expresiones-regulares-en-php/
  #5 (permalink)  
Antiguo 24/01/2010, 10:47
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Me ayudan con esta expresion regular?

Cita:
Iniciado por Gaboto83 Ver Mensaje
$patron1 = "/([a-z]*[A-Z]*[0-9]*)*$/";

Igual te diría que si tenés ganas de aprender entiendas la semántica del *.
Acá tenés un texto que explica:
http://boozox.net/php/manual-complet...ulares-en-php/
Tampoco es lo que necesita....
  #6 (permalink)  
Antiguo 24/01/2010, 11:58
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Me ayudan con esta expresion regular?

Tenés razón, es todo lo que incluye números, minúsculas y mayúsculas.
Acá tenes (horrible pero funciona):
Código PHP:
".*(([a-z].*[A-Z].*[0-9])|([a-z].*[0-9].*[A-Z])|([A-Z].*[a-z].*[0-9])|([A-Z].*[0-9].*[a-z])|([0-9].*[A-Z].*[a-z])|([0-9].*[a-z].*[A-Z])).*$" 
  #7 (permalink)  
Antiguo 25/01/2010, 18:48
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Me ayudan con esta expresion regular?

Cita:
Iniciado por Gaboto83 Ver Mensaje
Tenés razón, es todo lo que incluye números, minúsculas y mayúsculas.
Acá tenes (horrible pero funciona):
Código PHP:
".*(([a-z].*[A-Z].*[0-9])|([a-z].*[0-9].*[A-Z])|([A-Z].*[a-z].*[0-9])|([A-Z].*[0-9].*[a-z])|([0-9].*[A-Z].*[a-z])|([0-9].*[a-z].*[A-Z])).*$" 
Claro, yo pensé algo así, poniendo todas las combinaciones. Pero es mucho más óptimo tres ifs cortitos y listo.
Ahora, te funciona con '*' ? Deberían ser '+'.

Saludos,
  #8 (permalink)  
Antiguo 27/01/2010, 02:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Me ayudan con esta expresion regular?

Graciassss jejejeje :D enseguida lo pruebo y hos digo si me funciona XD

Lo acabo de probar:
Código PHP:
<?php
if(preg_match(".*(([a-z].*[A-Z].*[0-9])|([a-z].*[0-9].*[A-Z])|([A-Z].*[a-z].*[0-9])|([A-Z].*[0-9].*[a-z])|([0-9].*[A-Z].*[a-z])|([0-9].*[a-z].*[A-Z])).*$""1Aa543ztr532m")) echo ok;
?>
Me da el error:

Warning: preg_match() [function.preg-match]: Unknown modifier '*' in D:\xampp\htdocs\gl\test.php on line 2
XD y eso porq? :S
  #9 (permalink)  
Antiguo 27/01/2010, 06:07
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Me ayudan con esta expresion regular?

Te faltan los delimitadores.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #10 (permalink)  
Antiguo 27/01/2010, 07:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Me ayudan con esta expresion regular?

Gracias, problema solucionado XD pero si le añado caracteres como ' " - me sigue debolbiendo true
  #11 (permalink)  
Antiguo 29/01/2010, 08:00
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Me ayudan con esta expresion regular?

MapTPeak, yo pensé que querías una expresión regular que te diga si tiene MAYUSCULAS, MINUSCULAS y NUMEROS, pero no dijiste nada que había que excluir los casos que incluyan un caracter que no fuera ninguno de esos tres casos.
En definitiva lo que querés es una expresión regular que te diga los casos en que la cadena incluye mayusculas, minusculas, números y NO incluye ningún otro tipo de caracter.

Acá tenés (más fea aún):

Cita:
([a-z]|[A-Z]|[0-9])*(([a-z]([a-z]|[A-Z]|[0-9])*[A-Z]([a-z]|[A-Z]|[0-9])*[0-9])|([a-z]([a-z]|[A-Z]|[0-9])*[0-9]([a-z]|[A-Z]|[0-9])*[A-Z])|([A-Z]([a-z]|[A-Z]|[0-9])*[a-z]([a-z]|[A-Z]|[0-9])*[0-9])|([A-Z]([a-z]|[A-Z]|[0-9])*[0-9]([a-z]|[A-Z]|[0-9])*[a-z])|([0-9]([a-z]|[A-Z]|[0-9])*[A-Z]([a-z]|[A-Z]|[0-9])*[a-z])|([0-9]([a-z]|[A-Z]|[0-9])*[a-z]([a-z]|[A-Z]|[0-9])*[A-Z]))([a-z]|[A-Z]|[0-9])*$
  #12 (permalink)  
Antiguo 29/01/2010, 18:59
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Me ayudan con esta expresion regular?

Cita:
Iniciado por Gaboto83 Ver Mensaje
MapTPeak, yo pensé que querías una expresión regular que te diga si tiene MAYUSCULAS, MINUSCULAS y NUMEROS, pero no dijiste nada que había que excluir los casos que incluyan un caracter que no fuera ninguno de esos tres casos.
En definitiva lo que querés es una expresión regular que te diga los casos en que la cadena incluye mayusculas, minusculas, números y NO incluye ningún otro tipo de caracter.

Acá tenés (más fea aún):
Muy habilidoso pero eso es un desquicio, nos fuimos de tema. Le falta el ^ y tienen que ser + y no * porque sino devolvería true en una cadena vacía.

Lo mejor es usar 4 expresiones cortas (4 preg_match en 1 if):

que haya minúsculas /[a-z]+/
and
que haya mayúsculas /[A-Z]+/
and
que haya números /[0-9]+/
and
que solo haya mayúsculas, minúsculas y números (y no otra cosa) /^[a-z0-9]+$/i

Saludos,
  #13 (permalink)  
Antiguo 30/01/2010, 07:27
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Me ayudan con esta expresion regular?

xbx, es horrible la expresión, pero anda.
y lo del + no hace falta, porque fijate que en el medio de todo fui poniendo cosas sin *, esas son las obligatorias, probala si no y vas a ver. Lo del ^ no es necesario tampoco porque anda igual.
Por otro lado, yo lo haría algo parecido a lo que decís vos, por lo menos si querés tenes software mantenible ;), pero bueno, me pareció divertido y armé la expessión jeje.

Etiquetas: expresion, regular
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 17:22.