[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

2 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*