05/12/2008, 11:54
|
| | Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 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 |