C# 中 @ 非正則成員但常伴隨出現,表示後方字串為逐字字串,無需雙重轉義:
string x = "D:\\My Huang\\My Doc"; // 一般字串需轉義
string y = @"D:\My Huang\My Doc"; // 逐字字串
// string z = "D:\My Huang\My Doc"; // 編譯錯誤:\M \M 非法轉義
| 符號 | 含義 |
|---|---|
\d | 0-9 數字 |
\D | 非數字 (補集) |
\w | 單詞字符:字母、數字、底線 |
\W | 非單詞字符 |
\s | 空白字符:\n \r \t \v \f |
\S | 非空白字符 |
. | 除換行外任意字符 |
[...] | 字符集合:匹配括號內任一字符 |
[^...] | 排除字符集合 |
測試範例:
string i = "\n";
string m = "3";
Regex r = new Regex(@"\D"); // 或 "\\D"
r.IsMatch(i); // true (換行符非數字)
r.IsMatch(m); // false
代表位置而非字符,可視為字符間的微小間隙:
| 符號 | 含義 |
|---|---|
^ | 字串開頭 |
$ | 字串結尾 |
\b | 單詞邊界 |
\B | 非單詞邊界 |