首頁 >後端開發 >C++ >為什麼正規表示式分隔符號在 C# 正規表示式中不起作用?

為什麼正規表示式分隔符號在 C# 正規表示式中不起作用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-22 04:37:15851瀏覽

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

C# 正規表示式:分隔符號差異

與 PHP 和 JavaScript 等語言不同,C# 正規表示式不使用分隔符號。 從其他語言移植正規表示式程式碼時,這種語法差異需要修改方法。

說明性範例

讓我們檢查一個旨在刪除非字母數字字元的正規表示式範例:

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

上面的程式碼雖然在使用分隔符號 (/) 的其他語言中有效,但在 C# 中不會產生預期的結果。

正確的 C# 實作

消除分隔符號並達到預期結果的等效 C# 程式碼是:

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

在 C# 中,字串文字之前的 @ 符號表示逐字字串文字,防止轉義序列解釋。 這對於正確處理正規表示式模式至關重要。

澄清分隔符功能

在使用分隔符號的語言中,它們用於標記正規表示式模式的開始和結束。 它們不是匹配邏輯本身的一部分。 C# 省略了這個分隔符號語法,簡化了表達式結構。

C# 使用 RegexOptions 來管理修飾符,例如不區分大小寫的匹配或多行模式,提供類似於通常與其他語言中的分隔符關聯的內聯修飾符的功能。 然而,核心正規表示式模式仍然獨立於任何分隔符號概念。

以上是為什麼正規表示式分隔符號在 C# 正規表示式中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn