Ver Mensaje Individual
  #19 (permalink)  
Antiguo 05/12/2008, 11:54
bloodyogos
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: problema con las expresiones regulares

Ok

hay un archivo de texto que si lo pasa a hexadecimal, es un "mar" de 00 y hay algunas "islitar" que son caracteres de 3 tipos 0*, *0, o ** siendo * cualquier cosa menos 0.

asi, para encontrarlas pongo que encuentre 00 seguido de (0*, *0, o **), luego en medio ha de ir un numero indeterminado de (0*, *0, o **) par "por que cada letra ocupa 2 lugares" y termina con un (0*, *0, o **) seguido de 00. y eso es lo que se considera una cadena valida de texto.

he aislado el problema, no resuelto, en el bloque central,

(?:0[1-9a-z]|[1-9a-f]0|[1-9a-z]+)

solo se establece que tenga 1 caracter o mas, bien en el primer caso:

0[1-9a-z] # va bien, 0* son 2 caracteres

el segundo caso:

[1-9a-f]0 #sigue bien *0 son 2 caracteres

y el ultimo caso:

[1-9a-z] # este es el que falla, por que le da la posibilidad de coger un solo caracter y esto hace que las cadenas sehan impares y por tanto imposible hacer decode("hex")

en los del principio y el final no falla porque se especifica que han de ser 2 caracteres de uno de los 3 casos, pero en el bloque central no se establece una limitacion par de caracteres.

ese es mi problema, he probado a hacer varias cosas y no funciona, o me dice error de sintaxis o hace cosas muy extrañas.

el bucle que tenia antes era lento de pelotas, pero al final rulaba xD no en serio, necesito saber como arreglar esto...

Gracias una vez mas