2013-10-21 96 views
0
new Regex(@"\n|\r|\\|<|>|\*|!|\$|%|;"); 

我有一個上面的正則表達式的例子,但我真的不明白什麼是試圖找到?任何人都可以請我幫忙嗎?C#正則表達式方法解釋

回答

4

正則表達式匹配由alternation操作|隔開的字符中的一個意義。有一些特殊字符(如\n\r作爲換行符並回車,或\$的文字美元符號和\*的文字星號,因爲$*是正則表達式metacharacters),但除此之外,它是非常簡單的。

也就是說,單個字符匹配出的有效字符列表中,一個character class通常是更好的選擇,不僅因爲不太需要躲避特殊字符:

new Regex(@"[\n\r\\<>*!$%;]"); 
+0

+1用於縮短字符類 –

2

它會嘗試匹配列出的任何特殊字符:\n\r\<>*!$%|是正則表達式或運算。

某些字符需要一個額外的\被轉義爲它們在正則表達式lanugage(\$,...)

2

在正則表達式|是一個替代運營商。 A|B表示匹配AB。它也可以用字符類編寫 - [AB]這也意味着同樣的事情。

使用character class的好處在於,您不需要在其內部轉義正則表達式元字符,您必須在外面執行此操作,正如您爲*所做的那樣。所以,你的正則表達式可以縮寫爲:

new Regex(@"[\n\r\\<>*!$%;]");