在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以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://blog.chinaunix.net/u/634/showart.php?id=2466
分享到:
相关推荐
各种工具之正则表达式语法比较[定义].pdf
正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法.....
正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所...
JavaScript的正则表达式完全以Perl程序设计语言的正则表达式工具为基础。粗略地说,JavaScript 1.2实现了Perl 4的正则表达式,JavaScript 1.5实现了Perl 5的正则表达式的大型子集。 本章定义了正则表达式用来描述...
正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,所以找一种工具对正则表达式进行测试是很有必要的。“正则表达式工具”正是这样一个软件! (附正则表达式知识、示例)
正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别...
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则 的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说, 正则表达式就是记录文本规则的代码。
regexdesigner.net是一个强力的可视化工具,可以帮助我们构建与测试.NET正则表达式,RegexDesigner.NET让我们将我们开发出的正则表达式集成到我们的应用程序,可以方便的生成C#或VB.NET代码并编译成程序集 ...
程序窗口左侧有正则表达式语法说明,方便随时查阅,右侧可以对表达式进行匹配和搜索测试,方便实用。绿色软件,无需安装。
根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 可进行 "匹配","替换","分割" 功能的正则表达式应用测试。 可...
根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 可进行 "匹配","替换","分割" 功能的正则表达式应用测试。 可...
1.根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 2.同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 3.可进行 "匹配","替换","分割" 功能的正则表达式应用测试...
根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 可进行 "匹配","替换","分割" 功能的正则表达式应用测试。 可...
Groovy 正则表达式 Groovy正则表达式语法 背景项目使用Gradle作为自动化构建的工具, 闲暇之余对这个工具的使用方式以及其配置文件依赖的Groov
根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 详细记录每一个匹配结果,包含分组结果以及所花费的时间。 可进行 ...
正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,所以找一种工具对正则表达式进行测试是很有必要的。 不同的环境下正则表达式的一些细节是不相同的,本教程介绍的是微软 ...
RegexGen.js 是开发给 JavaScript 使用的正则表达式产生器,可以使用浅显易懂的语法来表现复杂的正则表达式。 RegexGen.js 基本上是为那些已经了解正则表达式引擎运作原理,但是不常使用正则表达式的人而开发的。...
在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则...
对未知正则表达式进行语法检查... 475 递归的正则表达式... 475 匹配嵌套括号内的文本... 475 不能回溯到递归调用之内... 477 匹配一组嵌套的括号... 478 PHP效率... 478 模式修饰符S:“研究”. 478 扩展...