Backslashes müssen in regulären Ausdrücken maskiert werden - und auch müssen in C # maskiert werden, es sei denn, Sie verwenden Verbatim String-Literale . Also sollte einer von beiden funktionieren:
%Vor% Beide stellen sicher, dass der folgende Zeichenfolgeninhalt an den Regex
-Konstruktor übergeben wird:
Der Regex
-Code sieht dann den doppelten Backslash und behandelt ihn wie "Ich möchte wirklich den umgekehrten Schrägstrich anpassen".
Grundsätzlich müssen Sie immer zwischen "den String-Inhalten, die Sie an die Regex-Engine übergeben wollen" und "der String-Literal-Darstellung im Quelltext" unterscheiden. (Dies gilt natürlich nicht nur für reguläre Ausdrücke. Der Debugger hilft nicht, indem er in Überwachungsfenstern usw. entweicht.)
BEARBEITEN: Jetzt, wo die Frage bearbeitet wurde, um zu zeigen, dass Sie ursprünglich drei Backslashes hatten, ist das einfach nicht gültig C #. Ich verdanke , dass du nach "einer Zeichenfolge mit drei umgekehrten Schrägstrichen" strebst, die eine der folgenden sein würde:
%Vor%... aber Sie müssen nicht den Raum verlassen, soweit der reguläre Ausdruck betroffen ist.
Sie müssen entweder doppelt entkommen (einmal für C # und einmal für die Regex-Engine):
%Vor%Oder Sie können die Funktion für wörtliche Zeichenfolgen von C # verwenden (beachten Sie das @) :
%Vor%In einem wortwörtlichen String wird der umgekehrte Schrägstrich nicht so interpretiert, als würde er eine Escape-Sequenz starten. Sie müssen ihn also nur einmal für die Regex-Engine ausschließen.
Ich nehme an, dass Ihr aktueller Code nicht kompiliert wird. Es sollte etwas in Anlehnung an die "unerkannte Escape-Sequenz" lauten.
Der Grund dafür ist, dass Sie drei umgekehrte Schrägstriche gefolgt von einem Leerzeichen haben. Die ersten beiden umgekehrten Schrägstriche werden als Escape-Sequenz interpretiert, die einen umgekehrten Schrägstrich darstellen. Der dritte umgekehrte Schrägstrich wird jedoch so interpretiert, dass eine Escape-Sequenz mit einem Leerzeichen als zweitem Zeichen beginnt. Eine solche Escape-Sequenz existiert nicht, was zu dem Fehler führt.