第1个,Regex Match Tracer http://www./zh/mtracer/
正则表达式工具 Match Tracer 是一款用来编写和测试正则表达式的工具软件。 本软件通过可视化的界面,可以协助你快速、正确地写出复杂的正则表达式。
主要功能:
- 根据正则表达式语法,彩色显示表达式,使表达式便于阅读。
- 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。
- 可进行 "匹配","替换","分割" 功能的正则表达式应用测试。
- 可进行 "忽略大小写","单行模式","多行模式","全局模式","从左向右","扩展模式" 等模式下的正则表达式测试。
- 可单独测试表达式中的一部分,有利于分段调试复杂的正则表达式。
- 可将测试好的表达式直接导出为程序语言代码,也可以直接从程序源代码的字符串中导入表达式。
第2个,REGEXBUDDY http://www./
这是一个真正专业的REGEX生产工具,应该说,他是不错的REGEX开发工具,提供了完美的REGEX表达式生产环境 语法高亮 以元件的形式插入各种正则表达式元素 支持以库的形式收集管理正则表达式 支持测试和分隔 支持各种预定义的各种语言中正则表达式函数的生成(很牛) 第3个,The Regulator http:///projects/regulator/
这个工具是用C#做的 The Regulator窗口主要分为六部分:Web Search、Regex Analyzer、SnippetsControl、表达式输入区、Match结果区、待解析文本区。比较重要的是Regex Analyzer、表达式输入区、Match结果区、待解析文本区。在默认情况下,Web Search区占了很大位置,可能需要调整一下。
基本用法:在表达式输入区、待解析文本区 输入你心目中的表达式和待解析文本,然后点菜单栏中的Match,结果会显示在Match结果区。
如果你想弄清楚一个正则表达式的意思,可以利用Regex Analyzer(在View菜单),不过该功能有时候无法解析出结果,此时可以把表达式输入区 或者 待解析文本区 中的内容稍微改一下(比如添加一个空格),或许就可以解析出正确的结果了。比如我输入 \d{2}-\d{5} ,会解析出 Any digit Exactly 2 times - Any digit Exactly 5 times 。可以帮助我们理解一个复杂的正则表达式。 其他有用的功能:生成代码(C# or VB.NET)、直接编译成DLL、从网站检索现成的正则表达式 (Web Search)、保存常用的表达式(SnippetsControl)等等 。
说到正则表达式,还有一个工具很有名气:Expresso http://www./。这个工具在codeproject上有详细介绍,出品时间也比The Regulator早。The Regulator的作者也受到了Expresso 的影响,才开发的The Regulator。 第4个,Expresso http://www./dotnet/expresso.asp
Expresso提供了一个基于.NET的正则表达式开发环境,能让你方便地学习、编写、测试、分析、调试正则表达式,它具有直观、易用的操作界面,并具有以下关键特性:
- 提供编写、运行正则表达式的环境,并附带丰富的样本文件(适合于复杂的匹配模式)用于测试;
- 通过Builder帮助你轻松构建表达式;
- 提供一个强大的正则表达式分析器,能让你方便地对表达式进行分析、调试;
- 内置丰富的表达式库,包含多种模式;
- 全面支持.NET正则表达式功能,包括替换、分组(group)等。
最重要的一点,Expresso完全免费,你只需要给Jim发送邮件就可以获得注册码。通过和Jim以email方式交流后,得知Expresso的最新版是3.0,目前已经可以支持中文文本的导入(2.1版导入中文会出现乱码)。正则表达式在基于WEB的数据挖掘方面具有非常广泛的应用,Expresso的出现无疑让表达式的编写变得更加简单,期待Expresso的后续版本给我们带来更新、更完美的体验。
各种工具之正则表达式语法比较
在各种常用的工具中, 正则表达式如此的相似却又不同。 下表列出了一些常用的正则表达式,以及其不同之处。 项目总多,遗漏必有不少,请各位看官不吝指出。 以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:] |
不支持 |
|