各类工具中正则表达式的比较。Vim 部分基本没问题,其他的用得比较少,可能有错误。
| gre
p 2.5.1
| egre
p 2.5.1
| sed 3.02 sed 4.07
| awk
3.1.1
| perl
5.8.0
| vim 6.3 vim 7.0
| JavaScript
| 转义字符
|
|
|
|
|
| /
|
| 行头
| ^
| ^
| ^
| ^
| ^
| ^
| ^
| 行尾
| $
| $
| $
| $
| $
| $
| $
| 多个
|
|
|
| 或 仅定义 --posix 或 --re-interval有效(要表达}和 没有定义--posix或--re-interval时,不能用的语法, }{同义
|
| /{n/} /{n,m/} /{n,/} /{,m/} 说明:右花括号前的转义字符 / 可不加
|
| 0 或多个
| *
| *
| *
| *或*, (要表达*,得用*)
| *
| *
| *
| 1 或多个
| +
| +
| +
| +或+, (要表达+, 得用+)
| +
| /+
| +
| 0 或 1 个
| ?
| ?
| ?
| ?或?, (要表达?, 得用?)
| ?
| /? 或 /= 说明:在反向查找的 ? 命令中不可用
| ?
| 任意字符
| .
| .
| .
| . 含 .
| . /s修饰后则含
| .
| . 除
| 匹配模式并获取结果
| (pattern)
| (pattern)
| (pattern)
| (pattern)或(pattern) (要表达括号,用( ) )
| (pattern)
| /(pattern/)
| (pattern)
| 匹配模式但不获取结果
| 不支持
| 不支持
| 不支持
| 不支持
| (?:pattern)
| /%(pattern/)
| (?:pattern)
| 强制不区分大小写
| 不支持
| 不支持
| 不支持
| 不支持
| (?i)
| /c
| (?=pattern)
| 强制区分大小写
| 不支持
| 不支持
| 不支持
| 不支持
| (?-i)
| /C
| (?=pattern)
| 零宽度匹配
| 不支持
| 不支持
| 不支持
| 不支持
| (?=pattern)
| pattern/@=
| (?=pattern)
| 零宽度否匹配
| 不支持
| 不支持
| 不支持
| 不支持
| (?!pattern)
| pattern/@!
| (?!pattern)
| 零宽度反向匹配
| 不支持
| 不支持
| 不支持
| 不支持
| (?<=pattern)
| pattern/@<=
|
| 零宽度反向否匹配
| 不支持
| 不支持
| 不支持
| 不支持
| (?<!pattern)
| pattern/@<!
|
| 无重试匹配(完整匹配)
| 不支持
| 不支持
| 不支持
| 不支持
| (?>pattern)
| pattern/@>
| (?=pattern)
| 或
| |
| |
| |
| |或| (要表达|,得用|)
| |
| /|
| |
| 特定字符范围中的任意一个字符
| [xyz]
| [xyz]
| [xyz]
| [xyz]
| [xyz]
| [xyz]
| [xyz]
| [.ch.] [=ch=]
| 不支持
| 不支持
| [.ch.]
| 不支持
| 不支持
| 不支持
| 不支持
| 单词边界
|
|
|
| 不支持
|
| /< 左边界 /> 右边界
|
| 非单词边界
| B
| B
| B
| 不支持
| B
| 不支持
| B
| 全字匹配
| < >
| < >
| < >
| 不支持 (><和><和><同义
| 不支持(><和><同义
| /<word/>
| 不支持(><和><同义
| 控制字符
| 不支持
| 不支持
| cx
| 不支持
| cx
| 不支持
| cx
| 数字
| 不支持
| 不支持
| 不支持
| 不支持
| d
| /d
| d
| 非数字
| 不支持
| 不支持
| 不支持
| 不支持
| D
| /D
| D
| 换页
| 不支持
| 不支持
| 高版本支持
| f
| f
| 另义 f表示文件名字符
| f
| 换行
| 不支持
| 不支持
| 不支持
|
|
|
|
| 回车
| 不支持
| 不支持
|
|
|
|
|
| 空白
| 不支持
| 不支持
| 不支持
| 不支持
| s
| /s
| s
| 非空白
| 不支持
| 不支持
| 不支持
| 不支持
| S
| /S
| S
| 制表符
| 不支持
| 不支持
| 高版本支持
|
|
| /t
|
| 垂直制表符
| 不支持
| 不支持
| 高版本支持
| v
| v
| 另义 v表示very magic
| v
| 单词字符[A-Za-z0-9_]
| w
| w
| w
| 不支持
| w
| /w
| w
| 非单词字符[^A-Za-z0-9_]
| W
| W
| W
| 不支持
| W
| /W
| W
| 十六进制
| 不支持
| 不支持
| 高版本支持
| xn
| xn
| 另义 x表示[0
-9A
-Za-z]
| xn
| 八进制
| 不支持
| 不支持
| 不支持
|
|
| 不支持
|
| 后向引用
|
|
|
| 仅取结果可用
|
| 仅取结果可用
|
| 字母和数字
| [:alnum:]
| [:alnum:]
| [:alnum:]
| [:alnum:]
| [:alnum:]
| [:alnum:]
| 不支持
| 字母
| [:alpha:]
| [:alpha:]
| [:alpha:]
| [:alpha:]
| [:alpha:]
| [:alpha:]
| 不支持
| 控制字符
| [:cntrl:]
| [:cntrl:]
| [:cntrl:]
| [:cntrl:]
| [:cntrl:]
| [:cntrl:]
| 不支持
| 数字
| [:digit:]
| [:digit:]
| [:digit:]
| [:digit:]
| [:digit:]
| [:digit:]
| 不支持
| 可打印字符(不含空格)
| [:graph:]
| [:graph:]
| [:graph:]
| [:graph:]
| [:graph:]
| [:graph:]
| 不支持
| 小写字母
| [:lower:]
| [:lower:]
| [:lower:]
| [:lower:]
| [:lower:]
| /l
| 不支持
| 可打印字符(含空格)
| [:print:]
| [:print:]
| [:print:]
| [:print:]
| [:print:]
| [:print:]
| 不支持
| 标点
| [:punct:]
| [:punct:]
| [:punct:]
| [:punct:]
| [:punct:]
| [:punct:]
| 不支持
| 空格
| [:space:]
| [:space:]
| [:space:]
| [:space:]
| [:space:]
| 直接敲空格,跟普通字符一样
| 不支持
| 大写字母
| [:upper:]
| [:upper:]
| [:upper:]
| [:upper:]
| [:upper:]
| /u
| 不支持
| 十六进制数字
| [:xdigit:]
| [:xdigit:]
| [:xdigit:]
| [:xdigit:]
| [:xdigit:]
| [:xdigit:]
| 不支持
| [:return:]
| 不支持
| 不支持
| 不支持
| 不支持
| 不支持
| [:return:]
| 不支持
| [:tab:]
| 不支持
| 不支持
| 不支持
| 不支持
| 不支持
| [:tab:]
| 不支持
| [:escape:]
| 不支持
| 不支持
| 不支持
| 不支持
| 不支持
| [:escape:]
| 不支持
| [:backspace:]
| 不支持
| 不支持
| 不支持
| 不支持
| 不支持
| [:backspace:]
| 不支持
|
|
|
|
|
|
|
|
|
|
参考:http://blog.zol.com.cn/blog/wjf_top/20290.html