2013-04-15 76 views
1

我已經給出了這個正則表達式在項目中使用,它似乎並沒有正常工作 - 它以前在其他應用程序中工作。爲什麼正則表達式匹配拋出異常?

它告訴我parsing "((^[^_]{1}\S{1,40})\_(\S{5,6})\_(\S{1,4})\_(\S{1,4})\_(\S{4,6}))(\.{1}\S{1,5})$" - Unrecognized escape sequence \_.

我有一個文件作爲一個常量正則表達式:

public static string MatchDocument = @"((^[^_]{1}\S{1,40})\_(\S{5,6})\_(\S{1,4})\_(\S{1,4})\_(\S{4,6}))(\.{1}\S{1,5})$"; 

我不使用正則表達式的經驗,但我認爲在前面加上字符串@會解決任何反斜槓問題......爲什麼這不起作用?

回答

5

它的意思正是它所說的。

\_不是正則表達式轉義序列(在正則表達式的.NET風格中)。

如果你想要一個下劃線,只需使用_

1

您的字符串包含\_的多個實例。這不是一個有效的正則表達式轉義。

0

下劃線是一個文字字符,不需要轉義。

相關問題