各種工具之正則表達式語法比較

各種工具之正則表達式語法比較
 
在各種常用的工具中,
正則表達式如此的相似卻又不同。
下表列出了一些常用的正則表達式,以及其不同之處。
項目總多,遺漏必有不少,請各位看官不吝指出。
以perl的正則爲基準,不同的用法以粉紅色標出。


grep 2.5.1 egrep 2.5.1 sed 3.02
sed 4.07
awk 3.1.1 perl 5.8.0 vim 6.1 JavaScript ??
轉義 \ \ \ \ \ \ \
行頭 ^ ^ ^ ^ ^ ^ ^
行尾 $ $ $ $ $ $ $
n個 {n} {m,n} {m,} {,n} \{n\} {n} \{n\} {n}或\{n\} 僅定義 --posix 或 --re-interval有效(要表達}和{,得用\\{和\\} 沒有定義--posix或--re-interval時,不能用{n}的語法, \}\{和}{同義 {n} \{n\} {n}
{0,} * * * *或\*, (要表達*,得用\\*) * * *
{1,} \+ + \+ +或\+, (要表達+, 得用\\+) + \+ +
{0,1} \? ? \? ?或\?, (要表達?, 得用\\?) ? \? ?
任意字符 . . . . 含\n. . /s修飾後則含\n . 除\n . 除\n
(pat) 匹配並獲結果 \(pat\) (pat) \(pat\) (pat)或\(pat\) (要表達括號,用\\( \\) ) (pat) \(pat\) (pat)
(?:pat) 匹配但不獲結果 不支持 不支持 不支持 不支持 (?:pat) 不支持 (?:pat)
(?=pat) 等於預查 不支持 不支持 不支持 不支持 (?=pat) 不支持 (?=pat)
(?!pat) 不等預查 不支持 不支持 不支持 不支持 (?!pat) 不支持 (?!pat)
| 或 \| | \| |或\| (要表達|,得用\\|) | \| |
其中任意字符 [xyz] [xyz] [xyz] [xyz] [xyz] [xyz] [xyz]
[.ch.] [=ch=] 不支持 不支持 [.ch.] 不支持 不支持 不支持 不支持
單詞邊界 \b \b \b \b 不支持 \b 不支持 \b
非單詞邊界 \B \B \B \B 不支持 \B 不支持 \B
單詞左右邊界 <> \< \> \< \> \< \> 不支持 (><和\>\<和\\>\\<同義 不支持(><和\>\<同義 \< \> 不支持(><和\>\<同義
控制字符 /cx 不支持 不支持 \cx 不支持 \cx 不支持 \cx
數字\d 不支持 不支持 不支持 不支持 \d \d \d
非數字\D 不支持 不支持 不支持 不支持 \D \D \D
換頁 \f 不支持 不支持 高版本支持 \f \f 另義 \f表示文件名字符 \f
換行 \n 不支持 不支持 不支持 \n \n \n \n
回車 \r 不支持 不支持 \r \r \r \r \r
空白 \s 不支持 不支持 不支持 不支持 \s \s \s
非空白 \S 不支持 不支持 不支持 不支持 \S \S \S
製表符 \t 不支持 不支持 高版本支持 \t \t \t \t
垂直製表符 \v 不支持 不支持 高版本支持 \v \v 另義 \v表示very magic \v
單詞字符 \w [A-Za-z0-9_] \w \w \w 不支持 \w \w \w
非單詞字符 \W [^A-Za-z0-9] \W \W \W 不支持 \W \W \W
\xn 16進制 不支持 不支持 高版本支持 \xn \xn 另義 \x表示[0-9A-Za-z] \xn
\n 八進制 不支持 不支持 不支持 \n \n 不支持 \n
\n 後向引用 \n \n \n \n 僅取結果可用 \n \n 僅取結果可用 \n
[:alnum:] 字母和數字 [:alnum:] [:alnum:] [:alnum:] [:alnum:] [:alnum:] [:alnum:] 不支持
[:alpha:] 字母 [:alpha:] [:alpha:] [:alpha:] [:alpha:] [:alpha:] [:alpha:] 不支持
[:cntrl:] 控制字符 [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] 不支持
[:digit:] 數字 [:digit:] [:digit:] [:digit:] [:digit:] [:digit:] [:digit:] 不支持
[:graph:] 可打印字符(不含空格) [:graph:] [:graph:] [:graph:] [:graph:] [:graph:] [:graph:] 不支持
[:lower:] 小寫 [:lower:] [:lower:] [:lower:] [:lower:] [:lower:] [:lower:] 不支持
[:print:] 可打印字符(含空格) [:print:] [:print:] [:print:] [:print:] [:print:] [:print:] 不支持
[:punct:] 標點 [:punct:] [:punct:] [:punct:] [:punct:] [:punct:] [:punct:] 不支持
[:space:] 空格 [:space:] [:space:] [:space:] [:space:] [:space:] [:space:] 不支持
[:upper:] 大寫字母 [:upper:] [:upper:] [:upper:] [:upper:] [:upper:] [:upper:] 不支持
[:xdigit:] 16進制數字 [:xdigit:] [:xdigit:] [:xdigit:] [:xdigit:] [:xdigit:] [:xdigit:] 不支持
[:return:] 不支持 不支持 不支持 不支持 不支持 [:return:] 不支持
[:tab:] 不支持 不支持 不支持 不支持 不支持 [:tab:] 不支持
[:escape:] 不支持 不支持 不支持 不支持 不支持 [:escape:] 不支持
[:backspace:] 不支持 不支持 不支持 不支持 不支持 [:backspace:] 不支持
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章