[VB.NET] RegEx Sonderzeichen maskieren
Hallo,
heute mal wieder eine kleine Notiz für mich – und alle die es auch ab und zu brauchen :)
RegEx (Regular Expressions) sagt sicher vielen etwas, die Programmieren. Nun kommt es aber auch mal vor das in der RegEx-Anweisung Zeichen vorkommen die eigentlich als Steuerzeichen reserviert sind. Wie zum Beispiel:
$ ^ { [ ( | ) * + ?
Sieht unsere Anweisung jetzt so aus
pattern = "<a href="(.*?)<strong><strong>?</strong></strong>.*?">.*?</a>"
haben wir schon ein Problem. Den das zweite Fragezeichen ist kein Sonderzeichen, sondern soll wirklich ein Fragezeichen im String sein. RegEx würde es jetzt aber als Teil einer Anweisung interpretieren.
Wie teilen wir jetzt VB.NET mit das es sich beim 2. Fragezeichen um einen ganz normalen Charakter handelt?
Ganz einfach. Wir maskieren es mit einem Backslash ‘/’. So sieht unser korrekter Pattern wie folgt aus:
pattern = "<a href="(.*?)<strong><strong>/?</strong></strong>.*?">.*?</a>"
Und schon wird das Fragezeichen auch als Fragezeichen interpretiert und nicht als Steuerungszeichen. ;)
Ich hoffe das konnte dir ein wenig weiterhelfen.
Viele Grüße
Gordon
Nur eben, dass das erste Pattern das Selbe wie das Zweite ist :-)
Hallo Chris.
Du hast vollkommen recht. Habe ich korrigiert. Danke. :)