Bueno, digamos que tengo una cadena de «el gato en El sombrero de perro», y yo sé lo que quiero regex partido de gato y de perro de la misma cadena.

Así que tengo algo así como:

Dim myString As String = "The cat in the hat dog"
Dim regex = New Regex("\bcat\b.*\bdog")
Dim match = regex.Match(myString)
If match.Success Then
    Console.WriteLine(match.Value)
End If

El partido.Valor devuelve «el gato en el sombrero de perro», el cual se espera.

Pero lo que realmente necesito es sólo «gato perro» sin las otras palabras en el medio, y estoy atascado.

Gracias por la ayuda!

Si ayuda, la cadena, estoy tratando de analizar es algo así como «el Nombre del Juego 20_03 Starter Pack r6» y estoy tratando de sacar «20_03 r6» como la información de la versión. En la actualidad el uso de «\b\d{2}_\d{2}\b.\br\d» como mi regex cadena.

OriginalEl autor Keirathi | 2014-07-21

2 Comentarios

  1. 5

    Puede parenthesize partes de la expresión regular para crear grupos de captura de valores:

    Dim regex As New Regex("\b(cat)\b.*\b(dog)")

    A continuación, utilizar match.Groups(1).Value y match.Groups(2).Value.

    Exactamente lo que necesitaba, gracias!

    OriginalEl autor Ry-

  2. 4

    Su expresión sería,

    Dim regex = New Regex("\bcat\b|\bdog\b")

    Esto coincide con la cadena cat o dog en la cadena de entrada.

    DEMO

    Para la segunda cadena, su expresión sería

    \b\d{2}_\d{2}\b|r\d

    DEMO

    Explicación:

    • \b Coincide con el límite de palabra(es decir, los partidos entre un carácter de palabra y no la palabra de caracteres).
    • \d{2} Coincide exactamente con un número de dos dígitos.
    • _ Coincide con un literal símbolo de subrayado.
    • \d{2} Coincide exactamente con un número de dos dígitos.
    • \b Coincide con el límite de palabra(es decir, los partidos entre un carácter de palabra y no la palabra de caracteres).
    • | Operador lógico or generalmente se utiliza para combinar dos patrones de regex.this|that, esto o aquello.
    • r\d Literal r seguida de un solo dígito.
    Puede que la gente publica la razón de downvote? Tengo que aprender algo.
    Ooh, que regex de prueba sitio es agradable. No creo que la lógica O la puerta es exactamente lo que necesito, aunque ya no tengo control sobre la cadena y puede ser cambiado por el usuario final. Yo sólo quiero tire de la información de la versión de ella, si ambas piezas están presentes. Debe haber aclarado más. El uso de otro tipo de solución, pero gracias por tu ayuda!

    OriginalEl autor Avinash Raj

Dejar respuesta

Please enter your comment!
Please enter your name here