Como Usar Split con Expresiones Regulares
Desde mi BD en SQL jalo el registro "producto", este registro esta formado por dos partes el nombre del producto y su media, los nombres de los productos son totalmente variados, como ejemplo coloco el siguiente : "Factura 91/2 X 4 X 11" ( los productos son formularios en papel, facturas, boletas, guías etc.)
Lo que necesito haces es obtener unicamente la parte correspondiente al nombre del producto y no la medida . Para el ejemplo anterior, debería unicamente mostar : "Factura".
Me he enredado pues pensé que seria sencillo hacerlo, lo más cercano que he llegado es a usar el comando SPLIT, para en mi lógica indicarle que cuando encuentre un "numero" corte la cadena .. Quedando así dividía en 2 partes la parte"letras" y la parte "numeros" . He probado colocando un dígito al azar y funciona muy bien, por ejemplo así :
Split(Text1(2).Text, 9 )
Y escojo un producto cuya medida inicie en 9 y en efecto lo divide. (Tex1(2) es el textbox en donde muestro este registro extraído de la BD)
Y aquí es donde no se si lo que sigue es posible... Poner una expresión regular y que el split funcione al encontrar cualquier numero, ninguna de las que puesto y que considere las comunes me ha funcionado . Por ejemplo he probado :
Split(Text1(2).Text, [0-9]) , Split(Text1(2).Text, "[0-9]") Split(Text1(2)Text, /d) , Split(Text1(2).Text, /\d/) y etc ....
Y ya me entro la duda si no estoy colocando bien si me falta una comilla o algo o simplemente Split en el visual basic no trabaja con expresiones regulares. En cuyo caso no se entonces que hacer .
Lo que necesito haces es obtener unicamente la parte correspondiente al nombre del producto y no la medida . Para el ejemplo anterior, debería unicamente mostar : "Factura".
Me he enredado pues pensé que seria sencillo hacerlo, lo más cercano que he llegado es a usar el comando SPLIT, para en mi lógica indicarle que cuando encuentre un "numero" corte la cadena .. Quedando así dividía en 2 partes la parte"letras" y la parte "numeros" . He probado colocando un dígito al azar y funciona muy bien, por ejemplo así :
Split(Text1(2).Text, 9 )
Y escojo un producto cuya medida inicie en 9 y en efecto lo divide. (Tex1(2) es el textbox en donde muestro este registro extraído de la BD)
Y aquí es donde no se si lo que sigue es posible... Poner una expresión regular y que el split funcione al encontrar cualquier numero, ninguna de las que puesto y que considere las comunes me ha funcionado . Por ejemplo he probado :
Split(Text1(2).Text, [0-9]) , Split(Text1(2).Text, "[0-9]") Split(Text1(2)Text, /d) , Split(Text1(2).Text, /\d/) y etc ....
Y ya me entro la duda si no estoy colocando bien si me falta una comilla o algo o simplemente Split en el visual basic no trabaja con expresiones regulares. En cuyo caso no se entonces que hacer .
1 Respuesta
Respuesta de blooddragon
1