正则表达式
在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以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个 | 或 仅定义 --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 |
| 换页 | 不支持 | 不支持 | 高版本支持 | 另义 表示文件名字符 | |||
| 换行 | 不支持 | 不支持 | 不支持 | ||||
| 回车 | 不支持 | 不支持 | |||||
| 空白 s | 不支持 | 不支持 | 不支持 | 不支持 | s | s | s |
| 非空白 S | 不支持 | 不支持 | 不支持 | 不支持 | S | S | S |
| 制表符 | 不支持 | 不支持 | 高版本支持 | ||||
| 垂直制表符 | 不支持 | 不支持 | 高版本支持 | 另义 表示very magic | |||
| 单词字符 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:] | 不支持 |











