是否有完整某處的正則表達式轉義序列列表?我發現this,但它缺少\\
和\e
首發。到目前爲止,我想出了這個正則表達式是希望所有的轉義序列匹配:C#正則表達式轉義序列
@"\\([bBdDfnreasStvwWnAZG\\]|x[A-Z0-9]{2}|u[A-Z0-9]{4}|\d{1,3}|k<\w+>)"
是否有完整某處的正則表達式轉義序列列表?我發現this,但它缺少\\
和\e
首發。到目前爲止,我想出了這個正則表達式是希望所有的轉義序列匹配:C#正則表達式轉義序列
@"\\([bBdDfnreasStvwWnAZG\\]|x[A-Z0-9]{2}|u[A-Z0-9]{4}|\d{1,3}|k<\w+>)"
或者,如果您只想正確地轉義字符串,您可以僅依靠Regex.Escape()
這將爲您做必要的轉義。
提示:還有一個Regex.Unescape()
這MSDN page(正則表達式語言元素)是一個很好的起點,與this subpage特別是約轉義序列。
不要忘記可能的Unicode類別不計其數:\p{Lu}
,\P{Sm}
等
有太多的這些對你單獨匹配,但是我想你可以使用沿着\\[pP]\{[A-Za-z0-9 \-_]+?\}
東西線(未經測試)。
還有還有通過您的列表中缺少的東西簡單:\.
,\+
,\*
,\?
等等等等
如果你只是想取消轉義現有的正則表達式,那麼你可以嘗試Regex.Unescape
。這並不完美,但它可能比我們在短時間內敲定的任何東西都要好。
Yuck ...不期待處理這種情況。 (謝謝) – mpen 2010-11-25 10:29:15
啊....最後,一個完整的參考。然而,它表示「\後面跟着一個字符,在本主題的這個表格和其他表格中沒有被識別爲轉義字符」,但是當我嘗試將`\ y`放入正則表達式時,它表示這是一個無法識別的轉義序列。爲什麼? – mpen 2010-11-25 10:32:29
反斜槓是一個c#字符串轉義序列字符。例如:「\ n」是隻帶有換行符的字符串。然而,在正則表達式反斜槓也開始轉義序列。無法識別的轉義序列來自「\ y」而不是c#轉義序列。使用「\\ y」將確保在初始化字符串時不會嘗試轉義序列。 – Gusdor 2011-01-07 11:00:08