[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

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

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

Ich stimme der Datenschutzerklärung zu