2010-11-25 45 views
11

是否有完整某處的正則表達式轉義序列列表?我發現this,但它缺少\\\e首發。到目前爲止,我想出了這個正則表達式是希望所有的轉義序列匹配:C#正則表達式轉義序列

@"\\([bBdDfnreasStvwWnAZG\\]|x[A-Z0-9]{2}|u[A-Z0-9]{4}|\d{1,3}|k<\w+>)" 

回答

6

MSDN page(正則表達式語言元素)是一個很好的起點,與this subpage特別是約轉義序列。

+1

啊....最後,一個完整的參考。然而,它表示「\後面跟着一個字符,在本主題的這個表格和其他表格中沒有被識別爲轉義字符」,但是當我嘗試將`\ y`放入正則表達式時,它表示這是一個無法識別的轉義序列。爲什麼? – mpen 2010-11-25 10:32:29

+1

反斜槓是一個c#字符串轉義序列字符。例如:「\ n」是隻帶有換行符的字符串。然而,在正則表達式反斜槓也開始轉義序列。無法識別的轉義序列來自「\ y」而不是c#轉義序列。使用「\\ y」將確保在初始化字符串時不會嘗試轉義序列。 – Gusdor 2011-01-07 11:00:08

5

不要忘記可能的Unicode類別不計其數:\p{Lu}\P{Sm}

有太多的這些對你單獨匹配,但是我想你可以使用沿着\\[pP]\{[A-Za-z0-9 \-_]+?\}東西線(未經測試)。

還有還有通過您的列表中缺少的東西簡單:\.\+\*\?等等等等

如果你只是想取消轉義現有的正則表達式,那麼你可以嘗試Regex.Unescape。這並不完美,但它可能比我們在短時間內敲定的任何東西都要好。

+0

Yuck ...不期待處理這種情況。 (謝謝) – mpen 2010-11-25 10:29:15