各种工具(grep,egrep,sed,awk,perl,vim,javascript)正则表达式元字符(集合)的参考和比较(z)
各种工具之正则表达式语法比较 |
|
在各种常用的工具中, 正则表达式如此的相似却又不同。 下表列出了一些常用的正则表达式,以及其不同之处。 项目总多,遗漏必有不少,请各位看官不吝指出。 以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:] |
不支持 | | | |
阅读(1062) | 评论(1) | 转发(0) |