Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Expresión regular

Estas en el tema de Expresión regular en el foro de PHP en Foros del Web. Buenos días, nunca he conseguido entender las expresiones regulares, pero necesito utilizar una para validar un token, necesito que la expresión me reconozca un token ...
  #1 (permalink)  
Antiguo 15/02/2015, 09:39
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Expresión regular

Buenos días, nunca he conseguido entender las expresiones regulares, pero necesito utilizar una para validar un token, necesito que la expresión me reconozca un token de exactamente 30 caracteres con letras y números, si no es molestia dos expresiones, una con letras mayúsculas y minúsculas y números, y otra solo para minúsculas y números (no se todavía si los tokens contendrán mayúsculas).

PD: Por si acaso a alguien le asalta la duda, no pretendo dar por válido el token solo con la expresión regular, pero me evito la consulta a la DB si el token no respeta el formato.

Un saludo.
  #2 (permalink)  
Antiguo 15/02/2015, 10:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular

Te sugiero consultar el sub-foro de expresiones regulares para que te ayuden, las expresiones regulares son un lenguaje completamente independienete.

Y por cierto, tampoco esperes a que alguien te de ya hecha la expresión.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/02/2015, 10:33
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Expresión regular

Quizás esté equivocado, eres uno de los usuarios que mas se pasea por este foro y confio en tus conocimientos sobre el, pero no consigo encontrar ningún subforo sobre expresiones regulares, es más, todos los temas que encuentro sobre expresiones regulares y php están en este subforo.

Teniendo en cuenta la simplicidad de la expresión que estoy pidiendo para alguien que sabe manejarlas si espero que me la den hecha, llevaría mas trabajo explicarme como hacerla que escribir los 15 o 20 caracteres en los que consiste.

Un saludo.
  #4 (permalink)  
Antiguo 15/02/2015, 10:50
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Expresión regular

De todas formas ya he encontrado la solución, por si alguien la necesita:

30 caracteres de mayúsculas, minúsculas y/o números:
Código PHP:
([0-9]|[a-z]|[A-Z]){30,30
30 caracteres de minúsculas y/o números:
Código PHP:
([0-9]|[a-z]){30,30
  #5 (permalink)  
Antiguo 15/02/2015, 10:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular

Aquí está el foro: http://www.forosdelweb.com/f183/

Además, tus expresiones no son válidas si tienen que permiter combinaciones.

Es decir, sólo validan si son cadenas de sólo letras, o sólo números, etc. ¿Es correcto eso?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 15/02/2015, 11:19
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Expresión regular

La estoy probando en esta página: http://www.contadordecaracteres.info/prueba-expresiones-regulares.html
Con el token b34de6360a5ec46b6a4a6477d290eb, que es uno generado por la aplicación, y lo reconoce perfectamente, y si quito un carácter ya no lo reconoce, así como si substituyo un carácter de la cadena por algún otro símbolo.

He mejorado un poco la expresión para que no acepte tampoco tokens de mas de 30 caracteres, que las anteriores si aceptaban:

Código PHP:
^(([0-9]|[a-z]){30})$
^(([
0-9]|[a-z]|[A-Z]){30})$ 
PD: No había mirado en Programación para mayores de 30 ¿que sentido tiene discriminar los foros según la edad de los participantes?
PD2: La expresión regular propuesta reconoce los tokens con números y letras puesto que los 30 caracteres son entre todos los rangos de caracteres, para que reconociera unicamente números o letras seria de la forma
Código PHP:
[0-9]{30}|[a-z]{30
(30 números O 30 letras)

Etiquetas: 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 07:50.