也使用正則表達式的逐字字符串,請參閱String literals on msdn
Console.WriteLine(Regex.IsMatch(@"C:\User\User\My Documents\Visual Studio 2010\Project\", @"\bProject\b"));
否則,你逃脫兩次
Console.WriteLine(Regex.IsMatch(@"C:\User\User\My Documents\Visual Studio 2010\Project\", "\\bProject\\b"));
見定期和逐字字符串的差異
string input = @"C:\User\User\My Documents\Visual Studio 2010\Project\";
string reg = "\bProject\b";
string regVerbatim = @"\bProject\b";
Regex r = new Regex(reg);
Regex rVerbatim = new Regex(regVerbatim);
Console.Write("Regular String regex: " + r.ToString() + " isMatch :");
Console.WriteLine(r.IsMatch(input));
Console.Write("Verbatim String regex: " + rVerbatim.ToString() + " isMatch :");
Console.WriteLine(rVerbatim.IsMatch(input));
輸出:
正規字符串的正則表達式:工程中的isMatch:假
Verba蒂姆字符串的正則表達式:\ bProject \ b isMatch:真
在常規字符串的正則表達式的最後一個「T」被刪除,也爲空字符串的話之前,也就是因爲字符串解釋\b
退格鍵和不會將它交給正則表達式解釋器。
因此,無論轉義反斜線使從\\bProject\\b
\bProject\b
被交給正則表達式解釋器,或使用逐字字符串,使字符串不解釋\b
。