Heim > Backend-Entwicklung > C++ > Warum funktionieren Regex-Trennzeichen nicht in regulären C#-Ausdrücken?

Warum funktionieren Regex-Trennzeichen nicht in regulären C#-Ausdrücken?

Mary-Kate Olsen
Freigeben: 2025-01-22 04:37:15
Original
829 Leute haben es durchsucht

Why Don't Regex Delimiters Work in C# Regular Expressions?

Reguläre C#-Ausdrücke: Trennzeichenunterschiede

Im Gegensatz zu Sprachen wie PHP und JavaScript verwenden reguläre C#-Ausdrücke keine Trennzeichen. Dieser Unterschied in der Syntax erfordert einen geänderten Ansatz bei der Portierung von Regex-Code aus anderen Sprachen.

Anschauliches Beispiel

Sehen wir uns ein Regex-Beispiel an, mit dem nicht-alphanumerische Zeichen entfernt werden sollen:

<code class="language-csharp">string name = "dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487";
string result = Regex.Replace(name, @"/\W/g", ""); //Incorrect C# syntax</code>
Nach dem Login kopieren

Der obige Code funktioniert zwar in anderen Sprachen, die Trennzeichen (/) verwenden, führt jedoch in C# nicht zum erwarteten Ergebnis.

Korrekte C#-Implementierung

Der entsprechende C#-Code, der Trennzeichen entfernt und das gewünschte Ergebnis erzielt, ist:

<code class="language-csharp">string name = "dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487";
string result = Regex.Replace(name, @"\W", ""); //Correct C# syntax</code>
Nach dem Login kopieren

In C# bedeutet das Symbol @ vor dem String-Literal ein wörtliches String-Literal, wodurch die Interpretation der Escape-Sequenz verhindert wird. Dies ist entscheidend für den korrekten Umgang mit Regex-Mustern.

Klärung der Trennzeichenfunktion

In Sprachen, die Trennzeichen verwenden, dienen sie dazu, den Anfang und das Ende des Regex-Musters zu markieren. Sie sind nicht Teil der Matching-Logik selbst. In C# wird diese Trennzeichensyntax weggelassen, wodurch die Ausdrucksstruktur vereinfacht wird.

C# verwendet RegexOptions, um Modifikatoren wie den Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung oder den Mehrzeilenmodus zu verwalten und bietet ähnliche Funktionen wie Inline-Modifikatoren, die in anderen Sprachen häufig mit Trennzeichen verknüpft sind. Das Kern-Regex-Muster bleibt jedoch unabhängig von Trennzeichenkonzepten.

Das obige ist der detaillierte Inhalt vonWarum funktionieren Regex-Trennzeichen nicht in regulären C#-Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage