现在的位置: 首页 > 综合 > 正文

各种工具之正则表达式语法比较

2013年12月13日 ⁄ 综合 ⁄ 共 2241字 ⁄ 字号 评论关闭

各种工具之正则表达式语法比较

http://blog.chinaunix.net//article.php?articleId=2466&blogId=634
2004年10月15日

在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以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时,不能用的语法, /}/{同义   /  
  * * * *或/*, (要表达*,得用//*) * * *
  /+ + /+ +或/+, (要表达+, 得用//+) + /+ +
  /? ? /? ?或/?, (要表达?, 得用//?) ? /? ?
任意字符 . . . . 含/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:] 不支持

抱歉!评论已关闭.