各种工具之正则表达式语法比较 |
|
在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以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} 仅定义 --posix 或 --re-interval有效(要表达}和{,得用{和} 没有定义--posix或--re-interval时,不能用{n}的语法,}{和}{同义 |
{n} |
{n} |
{0,} |
* |
*或*,(要表达*,得用*) |
* |
* |
{1,203)"> + |
+ |
+或+,(要表达+,得用+) |
+ |
+ |
? |
? |
?或?,(要表达?,得用?) |
? |
? |
任意字符 |
. |
. 含n. |
. /s修饰后则含n |
. 除n |
. 除n |
(pat) 匹配并获结果 |
(pat) |
(pat) |
(pat)或(pat) (要表达括号,用( ) ) |
(pat) |
(pat) |
(?:pat) 匹配但不获结果 |
不支持 |
(?:pat) |
(?:pat) |
(?=pat) 等于预查 |
(?=pat) |
(?=pat) |
(?!pat) 不等预查 |
(?!pat) |
(?!pat) |
| 或 |
| |
| |
|或| (要表达|,得用|) |
| |
| |
其中任意字符 |
[xyz] |
[xyz] |
[xyz] |
[.ch.] [=ch=] |
不支持 |
[.ch.] |
不支持 |
不支持 |
单词边界 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 |
回车 r |
r |
r |
r |
空白 s |
s |
s |
s |
非空白 S |
S |
S |
S |
制表符 t |
t |
t |
t |
垂直制表符 v |
v |
v |
另义 v表示very magic |
v |
单词字符 w [A-Za-z0-9_] |
w |
w |
w |
非单词字符 W [^A-Za-z0-9] |
W |
W |
W |
xn 16进制 |
xn |
xn |
另义 x表示[0-9A-Za-z] |
xn |
n 八进制 |
n 后向引用 |
n 仅取结果可用 |
[:alnum:] 字母和数字 |
[:alnum:] |
[:alnum:] |
不支持 |
[:alpha:] 字母 |
[:alpha:] |
[:alpha:] |
[:cntrl:] 控制字符 |
[:cntrl:] |
[:cntrl:] |
[:digit:] 数字 |
[:digit:] |
[:digit:] |
[:graph:] 可打印字符(不含空格) |
[:graph:] |
[:graph:] |
[:lower:] 小写 |
[:lower:] |
[:lower:] |
[:print:] 可打印字符(含空格) |
[:print:] |
[:print:] |
[:punct:] 标点 |
[:punct:] |
[:punct:] |
[:space:] 空格 |
[:space:] |
[:space:] |
[:upper:] 大写字母 |
[:upper:] |
[:upper:] |
[:xdigit:] 16进制数字 |
[:xdigit:] |
[:xdigit:] |
[:return:] |
[:return:] |
[:tab:] |
[:tab:] |
[:escape:] |
[:escape:] |
[:backspace:] |
[:backspace:] |
不支持 |
|
|
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|