微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

各种正则

http://blog.csdn.net/xeroo/article/details/593755


在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以perl的正则为基准,不同的用法以粉红色标出。
(xhchen8018@yahoo.com.cn)
(注意这里的斜杠都写反了)
1. sed awk grep 不支持\w \d之类的元字符,但是支持+,*的操作

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时,不能用的语法,/}/{同义 /
* * * *或/*,(要表达*,得用//*) * * *
/+ + /+ +或/+,(要表达+,得用//+) + /+ +
/? ? /? ?或/?,(要表达?,得用//?) ? /? ?
任意字符 . . 含/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
[: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:] 不支持

原文地址:https://www.jb51.cc/regex/359788.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐