VB.Net Reguläre Ausdrücke - Extraktion Wildcard-Wert
Muss ich helfen, extrahieren Sie den Wert einer wildcard aus einem Regulären Ausdrücken übereinstimmen. Zum Beispiel:
Regex: "ich mag *"
Eingang: "ich mag Schokolade"
Ich würde gerne in der Lage, zu extrahieren, den string "Schokolade" aus der Regex-match (oder was auch immer es sonst noch gibt). Wenn möglich, möchte ich auch abrufen können mehrere Platzhalter-Werte aus einem einzigen wildcard-match. Zum Beispiel:
Regex: "ich Spiele die * und die *"
Eingang: "ich Spiele die Gitarre und der bass"
Ich möchte in der Lage sein, zu extrahieren, die sowohl für "Gitarre" und "bass". Gibt es einen Weg, es zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen regex nutzen, die Konzepte der Gruppen. Gruppen sind gekennzeichnet durch Klammern.
So ich mag
Wäre ich wie (.) . = Alle Zeichen * Bedeutung als viele oder keines der obigen Zeichen
Dem obigen code wird für die Arbeit und die Zeichenkette, die ich Mag, und druckt alle Zeichen nach unter anderem die "' als . passt auch white space.
Ihre zweite Fall ist interessanter, weil die ersten rx wird mit dem gesamten Ende der Zeichenfolge, die Sie benötigen, etwas restriktiver.
Mag ich (\w+) und (\w+) : diese entsprechen
I Like then a space
und ein oder mehrere word-Zeichen und dann einand
Raum undone or more word characters
Für eine vollständige Behandlung von regex werfen Sie einen Blick auf diese Website, die hat ein tolles tutorial.
Hier ist mein RegexExtract Funktion in VBA. Es gibt nur den sub entsprechen, die Sie angeben (nur die Sachen in der Klammer). Also in deinem Fall, würde man schreiben:
Hier ist der code.
Hier ist eine version, die Ihnen erlauben, mehrere Gruppen zu extrahieren, die mehrere Teile auf einmal: