|
#1
|
|||
|
|||
La expresión regular de la solución adjunta considera que un alfanumerico es la combinación de cero o más numeros seguidos de 1 o más letras mayusculas o mínusculas en tanto que los numeros será la secuencia de 1 o más digitos:
alfanumerico = [0-9]*[A-Z|a-z]+ numero = [0-9]+ Cualquier otra cosa, incorporar espacios y cualquier otro caracter que necesites considerar o incluso que el string comienze con letras y luego números como alfanumerico tendrás que modificar la expresión regular. Querdaría algo asi entonces: data letranumero type string. data offset type i. data largo type i. data letras type string. data cnumeros type string. letranumero = '12159CSXD56245'. FIND REGEX '[0-9]*[A-Za-z]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo. letras = letranumero+offset(largo). FIND REGEX '[0-9]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo. cnumeros = letranumero+offset(largo). write / letranumero. write / letras. write / cnumeros. Úlima edición por Mauricio Hidalgo fecha: 10/07/13 a las 19:36:08. |
#2
|
|||
|
|||
:(
Mauricio acabo de probar pero cuando pasa me dice por ejemplo de este caso 1CR6134 que letras es 1CR y el largo es 1 y me coloca el numero 1.
|
#3
|
|||
|
|||
Oka, dejalo asi:
data letranumero type string. data offset type i. data largo type i. data letras type string. data cnumeros type string. letranumero = '1CR6134'. FIND REGEX '[0-9]*[A-Za-z]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo. letras = letranumero+offset(largo). cnumeros = letranumero+largo. write / letranumero. write / letras. write / cnumeros. |
#4
|
|||
|
|||
Pregunta
Cuando hablas que se pueden incorporar cualquier otro carácter, dices que hay que modificar la expresión eso seria en el caso que se presentara el caso de algo así letrasnumero = 12CDF23N-2653256 seria fácil decir que el delimitador es '-' y el resto es el numero???
|
#5
|
|||
|
|||
osea si hubiese un delimitador todo más facil. Pero si el "-" fuese parte de lo que se concidera alfanumerico hay que incorporarlo a la expresión regular.
|
#6
|
|||
|
|||
Hola,
solo quería decir que a mi también me sirvio mucho el código aportado (segunda versión), solo que donde cnumero puse letras y viceversa porque en el resultado me ponía por ejemplo: 12A Letras: 12 Numeros: A es decir, solo había que intercambiar las variables. Gracias Mauricio!!! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|