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.
|