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中文網其他相關文章!