Heim >Backend-Entwicklung >C++ >Warum funktionieren meine Trennzeichen für reguläre Ausdrücke in C# nicht?

Warum funktionieren meine Trennzeichen für reguläre Ausdrücke in C# nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-22 04:38:10844Durchsuche

Why Aren't My Regular Expression Delimiters Working in C#?

Verstehen der Syntax regulärer Ausdrücke in C#

Beim Arbeiten mit regulären Ausdrücken in C# können Probleme auftreten, wenn Sie versuchen, Trennzeichen wie Schrägstriche (/) zu verwenden, die in Sprachen wie PHP oder JavaScript üblich sind. Sehen wir uns an, warum dies in C# nicht funktioniert und wie man reguläre Ausdrücke richtig implementiert.

Das Problem entsteht durch den Versuch, einen regulären Ausdruck wie diesen (falsch) zu verwenden:

"name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487\nname = Regex.Replace(name, @"/\W/g", "")"

Dieser Code versucht, „/“, „-“ und „.“ zu entfernen. Verwendung von Trennzeichen. Allerdings behandelt C# reguläre Ausdrücke anders. Trennzeichen sind nicht erforderlich und verursachen tatsächlich Fehler.

Der richtige Ansatz in C#

Um einen regulären Ausdruck in C# zu definieren, verwenden Sie das Symbol @, um ein wörtliches Zeichenfolgenliteral zu erstellen. Dies verhindert, dass C# Escape-Sequenzen innerhalb der Zeichenfolge interpretiert. Sie müssen auch Sonderzeichen innerhalb der Regex selbst korrekt maskieren.

Der korrigierte Code zum Entfernen nicht-alphanumerischer Zeichen (W) wäre:

<code class="language-csharp">name = Regex.Replace(name, @"\W", "");</code>

Diese einzelne Codezeile ersetzt effektiv alle nicht alphanumerischen Zeichen in der Zeichenfolge name durch eine leere Zeichenfolge und erzielt so das gewünschte Ergebnis, ohne dass Trennzeichen erforderlich sind. Denken Sie daran, dass W die Regex-Zeichenklasse ist, die jedem nicht-alphanumerischen Zeichen entspricht.

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

Stellungnahme:
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