在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以perl的正则为基准,不同的用法以粉红色标出。
([email protected])
|
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时,不能用的语法, }{同义
|
|
|
|
|
*
|
*
|
*
|
*或*, (要表达*,得用\*)
|
*
|
*
|
*
|
|
+
|
+
|
+
|
+或+, (要表达+, 得用\+)
|
+
|
+
|
+
|
|
?
|
?
|
?
|
?或?, (要表达?, 得用\?)
|
?
|
?
|
?
|
任意字符
|
.
|
.
|
.
|
. 含 .
|
. /s修饰后则含
|
. 除
|
. 除
|
(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
|
单词左右边界 <>
|
< >
|
< >
|
< >
|
不支持 (><和><和\>\<同义
|
不支持(><和><同义
|
< >
|
不支持(><和><同义
|
控制字符 /cx
|
不支持
|
不支持
|
cx
|
不支持
|
cx
|
不支持
|
cx
|
数字d
|
不支持
|
不支持
|
不支持
|
不支持
|
d
|
d
|
d
|
非数字D
|
不支持
|
不支持
|
不支持
|
不支持
|
D
|
D
|
D
|
换页 f
|
不支持
|
不支持
|
高版本支持
|
f
|
f
|
另义 f表示文件名字符
|
f
|
换行
|
不支持
|
不支持
|
不支持
|
|
|
|
|
回车
|
不支持
|
不支持
|
|
|
|
|
|
空白 s
|
不支持
|
不支持
|
不支持
|
不支持
|
s
|
s
|
s
|
非空白 S
|
不支持
|
不支持
|
不支持
|
不支持
|
S
|
S
|
S
|
制表符
|
不支持
|
不支持
|
高版本支持
|
|
|
|
|
垂直制表符 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
|
八进制
|
不支持
|
不支持
|
不支持
|
|
|
不支持
|
|
后向引用
|
|
|
|
仅取结果可用
|
|
仅取结果可用
|
|
[: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:]
|
不支持
|
|