http://blog.csdn.net/xeroo/article/details/593755
在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以perl的正则为基准,不同的用法以粉红色标出。
(xhchen8018@yahoo.com.cn)
(注意这里的斜杠都写反了)
1. sed awk grep 不支持w d之类的元字符,但是支持+,*的操作
|
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个 |
/ |
|
/ |
或/ 仅定义 --posix 或 --re-interval有效(要表达}和 没有定义--posix或--re-interval时,不能用的语法,/}/{同义 |
|
/ |
|
|
* |
* |
* |
*或/*,(要表达*,得用//*) |
* |
* |
* |
|
/+ |
+ |
/+ |
+或/+,(要表达+,得用//+) |
+ |
/+ |
+ |
|
/? |
? |
/? |
?或/?,(要表达?,得用//?) |
? |
/? |
? |
任意字符 |
. |
. 含/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 |
[: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:] |
不支持 |
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|