Visual Basic.NET - extraer cadena

   
Vista:

extraer cadena

Publicado por Sergio (2 intervenciones) el 26/08/2010 17:41:48
Hola Amigos:
Tengo la siguiente cadena:
L=1,234; A=1,432
L=234; A=1,432;A1=234;A2=2,342
L=1,254;L1=1,987;A=2,233;A1=4,234;A2=1,999
son registros diferentes; la idea es extraer el numero solo de L y A, es decir alguna funcion que me busque L= y extraiga los numeros hasta el Punto y coma lo mismo con A= que al final es la misma fucnión, es como un buscar y extraer, ojala alguien me pueda echar una manito, no me sirve ni el MID ni el right ni el LEFT ya que me buscan por una posicion especifica y un largo especifico.
Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:extraer cadena

Publicado por JoanF (129 intervenciones) el 27/08/2010 10:19:51
Hola,

Para esto lo mejor es usar expresiones regulares. En este caso el patrón para buscar las As seria: A=([0-9]+,)?[0-9]+(;|\r\n), i para las Ls seria: L=([0-9]+,)?[0-9]+(;|\r\n).

El código en VB para buscar las As sería algo así:
Dim texto As String = "L=1,234; A=1,432" & vbCrLf & _
"L=234; A=1,432;A1=234;A2=2,342" & vbCrLf & _
"L=1,254;L1=1,987;A=2,233;A1=4,234;A2=1,999 "
Dim patronA As String = "A=([0-9]+,)?[0-9]+(;|\r\n)"
For Each encontrado As System.Text.RegularExpressions.Match In System.Text.RegularExpressions.Regex.Matches(texto, patronA, Text.RegularExpressions.RegexOptions.IgnoreCase)
Console.WriteLine(encontrado.Value)
Next

El tema de expresiones regulares es un poco complejo. En la web hay mucha información sobre estas expresiones regulares y en http://bulma.net/body.phtml?nIdNoticia=770 hay un manual bastante bueno (es para PERL, pero las expresiones regulares son muy similares para todos los lenguajes)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:extraer cadena

Publicado por Sergio V (2 intervenciones) el 27/08/2010 23:02:23
Muchas gracias, usaré expresiones regulares para estas busquedas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar