grep、sed、awk、perl等对正则表达式的支持的差别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了grep、sed、awk、perl等对正则表达式的支持的差别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2844字,纯文字阅读大概需要5分钟。
内容图文

在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以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}或\{n\} 仅定义 --posix 或 --re-interval有效(要表达}和{,得用\\{和\\} 没有定义--posix或--re-interval时,不能用{n}的语法, \}\{和}{同义 | {n} | \{n\} | {n} |
{0,} | * | * | * | *或\*, (要表达*,得用\\*) | * | * | * |
{1,} | \+ | + | \+ | +或\+, (要表达+, 得用\\+) | + | \+ | + |
{0,1} | \? | ? | \? | ?或\?, (要表达?, 得用\\?) | ? | \? | ? |
任意字符 | . | . | . | . 含\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 | \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:] | 不支持 |
原文:http://my.oschina.net/onionsheep/blog/346926
内容总结
以上是互联网集市为您收集整理的grep、sed、awk、perl等对正则表达式的支持的差别全部内容,希望文章能够帮你解决grep、sed、awk、perl等对正则表达式的支持的差别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。