縉哥哥非常懶,當遇到重復的事情時,就喜歡通過批量處理來解決,而文本用的是 EmEditor 程序,EmEditor 正則表達式語言基于 Perl 正則表達式語法,所以通過掌握EmEditor正則表達式語法,大大提升工作效率。
所有字符都是文字除了: “.”, “*”, “?”, “+”, “(“, “)”, “{“, “}”, “[“, “]”, “^”, “$” 和 “\”。這些字符代表文字當之前有一個 “\” 時。一個文字是一個與它自己相匹配的字符。例如,搜索 “\?” 會匹配每一個在文檔中的 “?” ,或搜索 “Hello” 會匹配每一個在文檔中的 “Hello” 。
下列表格包含元字符(非文字)的完整列表以及這些元字符在正則表達式中的行為。
下面的字符類被用在字符集中,例如 “[:classname:]”。例如,”[[:space:]]” 是所有空白字符的集合。
alnum | 任何語言字符及數字: 字母,音節(jié)或表意字符。 |
alpha | 任何語言字符: 字母,音節(jié)或表意字符。 |
blank | 任何空白字符,空格或 tab。 |
cntrl | 任何控制字符。 |
digit | 任何 0-9 的數字。 |
graph | 任何圖形字符。 |
lower | 任何 a-z 的小寫字符,以及其他小寫字符。 |
任何可打印的字符。 | |
punct | 任何標點字符。 |
space | 任何空白字符。 |
upper | 任何 A-Z 的大寫字母,以及其他大寫字符。 |
xdigit | 任何十六進制數字字符,0-9,a-f 還有 A-F。 |
word | 任何單詞字符 – 所有字母數字字符以及下劃線。 |
unicode | 任何大于 255 代碼的字符。 |
下列轉義序列是單一字符的別名:
0x07 | \a | 響鈴字符。 |
0x0C | \f | 換頁 (FF)。 |
0x0A | \n | 換行字符。 |
0x0D | \r | 回車符。 |
0x09 | \t | Tab 字符。 |
0x0B | \v | 垂直 tab。 |
0x1B | \e | ASCII 轉義符。 |
0dd | \0dd | 八進制字符代碼,dd 是一個或多個八進制數字。 |
0xXX | \xXX | 一個十六進制字符代碼,XX 是一個或多個十六進制數字 (一個 Unicode 字符)。 |
0xXXXX | \x{XXXX} | 一個十六進制字符代碼,XXXX 是一個或多個十六進制數字 (一個 Unicode 字符)。 |
Z-‘@’ | \cZ Z-‘@’ | 一個 ASCII 轉義序列控制-Z,其中 Z 是任一 ASCII 字符大于或等于 ‘@’ 的字符代碼。 |
下列轉義序列與單詞的邊界相匹配:
\< | 匹配一個單詞的開頭。(僅限 Boost.Regex) |
\> | 匹配一個單詞的結尾。(僅限 Boost.Regex) |
\b | 匹配單詞的邊界(一個單詞的開頭或結尾)。 |
\B | 僅當不在單詞邊界處時匹配。 |
下列轉義序列能被用來表示整個字符類:
\w | 任何單詞字符 – 所有字母數字字符加下劃線。 |
\W | \w 的補集 – 查找任何非單詞的字符。 |
\s | 任何空白字符。 |
\S | \s 的補集。 |
\d | 任何 0-9 的數字。 |
\D | \d 的補集。 |
\l | 任何 a-z 的小寫字符。 |
\L | \l 的補集。 |
\u | 任何 A-Z 的大寫字符。 |
\U | \u 補集。 |
\C | 任何單一字符,等同與 ‘.’。 |
\Q | 開始引述運算符,任何跟在該符號后面的內容會被作為一個文本字符直到找到 \E 結束引述運算符。 |
\E | 結束引述運算符,終止一個由 \Q 開始的序列。 |
下列表格顯示如何指定換行符。
勾選“使用正則表達式” | \n 或 \r\n(相同含義) |
不勾選“使用正則表達式”(使用轉義序列) | \n 或 \r\n(相同含義) |
勾選“使用正則表達式” | \r\n,\r,或 \n(取決于實際的換行方式) |
不勾選“使用正則表達式”(使用轉義序列) | \n 或 \r\n(相同含義) |
勾選“保持修改的文件打開” | 不勾選“保持修改的文件打開” | |
勾選“使用正則表達式” | \r\n,\r,或 \n(取決于實際的換行方式) | \r\n,\r,或 \n(取決于實際的換行方式) |
不勾選“使用正則表達式”(使用轉義序列) | \n 或 \r\n(相同含義) | \r\n,\r,或 \n(取決于實際的換行方式) |