
RegeX是一款正则表达式辅助程序,它通过高亮匹配及替换内容使整个流程可视化,帮助用户更好地理解和使用正则表达式这一强力工具。
RegeX定位为免费软件,任何人都可无限制的使用它。
它的前身叫做SearchRex,此前我曾在一个小圈子里推广过它,很受好评。
我自己就是它最最忠实的铁杆用户:它帮我逐步学习和掌握了正则表达式;它帮我完成了很多文字处理工作;每次关于正则表达式编程的测试工作也都是依靠它来完成的。
经过一段时间的WPF技术学习后,我决定用WPF技术对它进行一次升级,于是就有了RegeX:
下载:点击下载
版本:2.1.1.5 查看更新
内置语言:简体中文(中国大陆、新加坡)、繁体中文(香港、澳门、台湾)、英文(美国、英国、加拿大、澳大利亚)
所需运行环境:.Net 3.5 SP1
所需字体:微软雅黑
使用教程:http://www.cnblogs.com/SkyD/archive/2008/09/22/1295620.html
程序界面:

常规运行界面:http://images.cnblogs.com/cnblogs_com/skyd/RegeX_2.1.1.5_4.png
最大化状态界面:http://images.cnblogs.com/cnblogs_com/skyd/RegeX_Public_5.gif
折叠状态界面: http://images.cnblogs.com/cnblogs_com/skyd/RegeX_Public_2.gif
posted on 2008-09-22 04:54
斯克迪亚 阅读(5728)
评论(79) 编辑 收藏 网摘 所属分类:
发布,
编程,
RegeX
Feedback
2008-09-22 09:57 |
玩个这还得装个:.Net 3.5 SP1
纯支持!
回复 引用
2008-09-22 09:59 |
赞一个!` 好棒的工具,非常的让人 happy~
thks!~
回复 引用
提个建议 能不能把左侧的文字竖着放,现在的阅读方式实在是太不方便了要看清楚还得歪着脑袋O(∩_∩)O
回复 引用 查看
--引用--------------------------------------------------
aito: 好像关于页面没有关闭按钮的!!
--------------------------------------------------------
嗯,你只要点击主窗口,关于窗口就会自动关闭的
回复 引用 查看
--引用--------------------------------------------------
星痕: 提个建议 能不能把左侧的文字竖着放,现在的阅读方式实在是太不方便了要看清楚还得歪着脑袋O(∩_∩)O
--------------------------------------------------------
我尝试了~没成功~~
实话讲这样横放我也不太喜欢,字体会莫名其妙的变模糊:(
回复 引用 查看
2008-09-22 15:39 |
环境要求太高
回复 引用
这个要是能有支持。net 2.0的就好了啊
回复 引用 查看
2008-09-23 13:22 |
---------------------------
错误
---------------------------
找不到方法:“System.Object System.Windows.Markup.XamlReader.Parse(System.String)”。
---------------------------
确定
---------------------------
回复 引用
@ruan
你的是.Net 3.5 SP1版吗?
我查了一下MSDN,这个方法好像是SP1新加入的
回复 引用 查看
2008-09-25 12:29 |
很漂亮~ 我喜歡這個顏色~
回复 引用
我喜欢这个颜色,不过你好像没有列出分组匹配呀
另外源代码打算放出不?
回复 引用 查看
一个建议,我觉得应该把匹配的结果根据组名列出来,这样加红好像不是很好看
回复 引用 查看
@仁面寿星
目前版本已支持组信息显示,可以通过鼠标悬停了解到组名及组内容。
现在没有开源的打算,小软件开源没有什么意义,我的代码也比较难看哈,一些技术细节我都会在后续的文章中分享出来的。
回复 引用 查看
2008-09-28 12:24 |
跨平台?
回复 引用
@仁面寿星
可以通过“替换并删除其他字符”按钮轻松实现你所说的功能哦
回复 引用 查看
界面挺酷的,可以加入常用的正则库,会更实用一些:)
回复 引用 查看
@Doho
以前本想加入正则保存功能,无奈ComboBox在界面定制后会产生怪异的BUG,就放弃了~
回复 引用 查看
我的邮箱是xyq8989@163.com 博主能发给我下不?
回复 引用 查看
--引用--------------------------------------------------
Ame: 我的邮箱是xyq8989@163.com 博主能发给我下不?
--------------------------------------------------------
已发送
回复 引用 查看
2008-12-13 02:31 |
界面不错,能否写一片文章讲解一下该界面的设计,包括右上角的诸多功能。期待中,加油。
回复 引用
2009-01-12 14:42 |
程序打开好像很慢。
回复 引用
2009-01-12 20:09 |
不顶不行啊
感谢^^
回复 引用
哥们你的WPF技术很赞啊!以后我要多来参观学习:)
回复 引用 查看
2009-03-31 10:05 |
我安装了.net3.5sp1,运行可以了,可是不能显示,点击任务栏时看见放大和缩小的框,就是看不见整个软件,好像隐藏了一样,没法使用。请指教。
回复 引用
2009-04-07 18:14 |
右键好丑..
回复 引用
2009-05-26 01:49 |
请问,关于richtextbox的查找和替换用的什么函数,务必回答啊,关系到我的期末大作业啊,谢谢谢谢
回复 引用
--引用--------------------------------------------------
王元: 请问,关于richtextbox的查找和替换用的什么函数,务必回答啊,关系到我的期末大作业啊,谢谢谢谢
--------------------------------------------------------
参考:http://msdn.microsoft.com/zh-cn/library/aa972150.aspx
http://msdn.microsoft.com/zh-cn/library/bb613594.aspx
我感觉比较麻烦,在夹杂着标记的代码中处理选定位置及内容看起来很晕,所以在这个软件里采用的方法是:
取出流文档>转换为纯文本>处理并添加流文档标记以生成XAML>由XAML转换为流文档>加载回richtextbox
回复 引用 查看
以下代码用于转换流文档为不含标记的纯文本内容:
public static string 转换为字符串(FlowDocument 流文档)
{
return new TextRange(流文档.ContentStart, 流文档.ContentEnd).Text;
}
以下代码用于转换XAML文本为流文档:
public static FlowDocument 转换为流文档(string 字符串)
{
var s = 字符串.进行HTML编码();
s = Regex.Replace(s, @"\r\n", "<LineBreak/>");
return XamlReader.Parse(@"<FlowDocument xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xml:space=""preserve""><Paragraph>" + s + "</Paragraph></FlowDocument>") as FlowDocument;
}
回复 引用 查看
运行环境:XP+.Net3.5
问题:
点击关闭的时候会报错,是怎么回事?
回复 引用 查看
猜想可能是目录权限问题,关闭时要在程序所在目录中写入一些数据的。
回复 引用 查看
@斯克迪亚
我一直都是用的administrator登录的哦。
回复 引用 查看
程序关闭时只做以下操作:
首先隐藏自身窗口
然后将输入、输出内容分别保存。
再将配置文件保存。
正确关闭后程序所在目录下应有这三个文件:RegeX.cfg RegeXOutput.cfg RegeXInput.cfg
如果还不行的话,检查一下你的.Net框架有没有打SP1补丁,没有的话打上看看。
回复 引用 查看
以前做从网页抓取数据的程序,编写正则表达式很费力。有了这款工具,分析起来很直观。谢谢楼主!
回复 引用 查看
第一点建议:
建议不需要皮肤,这点小事还是交给系统主题做,如果是Vista以上,还顺便附送了毛玻璃特效(虽然它并不好看),可以减小程序体积加快运行效率和减少系统处理额外的事件(竖排的文本还是用文本标签吧?横向排列也是不错的,能把上下两个对比框分得开些……)。
另外,程序本身用着绿色,边框也是绿的,按键上的字也是墨绿的……看着久会晕呢~(虽然我本身也喜欢绿色~)
第二点建议:
建议采用系统默认的字体,而不是雅黑。1024*768以下分辨率看这种字体就是一团糊。系统用什么字体说时使用者本身习惯于这样的字体。
第三点建议:
建议加入单文件与批处理共存:
用单选框(单文件模式,批处理模式)。
单文件模式时,展开上下两个对比结果框,合拢文件选择框(这个参考下面的图)。批模式时,合拢对比框,展开文件选择框。
下面是一个批处理替换的程序,还算顺手(可惜不支持RE……)
回复 引用 查看
运行环境要求太高了……
.Net 3.51,我Server 2003。要去下载安装一个庞然大物后并经十多分数的安装后才有办法运行这个打包了才84K的程序。非要.Net 不可?
MS要真实行个人电脑也正版化的话,除公司外还真没有几部电脑可以运行它了。
题外问题:那个折叠按钮,貌似会去点的机会不多,折叠后,做什么呢?去其它窗口找文字?MS的窗口经了几十年的发展,依然还只有最小大关闭(Excel公式窗口例外要去选择坐标)。其它系统例外~
精减,高效,明朗化,总不成更新到后来,随便一个软件都要用DVD碟去装载。
回复 引用 查看
@Pen-ni
呵呵,谢谢你这么多建议:)
不过呢,我这个软件主要就是供开发人员测试使用,一般来说博客园这里的开发人员都有.Net框架3.5或Vista以上版本的Windows。
也可以说我根本没有把它推广给大众的需求,甚至该软件本身也只是我用来练习WPF的测试品,所以才要用WPF、才要实现一些显示效果。
字体方面,WPF只有雅黑看着顺眼,宋体什么的特别难看,这是没办法的哦。
折叠功能用的不读,但有时需要看看后面的窗口有什么东西时可能会用到,有这功能比没这功能强,用不用是个人的事了。
短期内也没有植入批处理功能的打算,因为定位是程序员使用,批处理自己写点代码就完事了,这玩意主要还是侧重于可视化地调试正则表达式。
回复 引用 查看
没。
只是表达了一个对编写程序上一个很笼统想法,太过于依赖某些平台总觉得很架空。
我朋友在写个ERP时和我说它功能如何如何界面如何如何用了什么技术云云总总。后来他全部代码重写了一遍,原因是去安装这个系统时发现用的是2000。所以看到这么华丽的界面时就想到了这些,随便说了说,呵呵。
另外:发现微软很聪明~实在是了不得~
回复 引用 查看
2009-09-03 10:29 |
请登录你的@126.com,回复邮件:daziyuan
回复 引用
2009-12-04 17:58 |
您好,看到很多您写的关于WebBrowser的文章,所以我想请教个问题.
因为我现在在研究做个登陆的程序,首页有验证码
我如何访问它的首页后,把当前显示的验证码另存为到本地文件夹,这样我可以利用验证码识别程序来识别它,但是我网上搜资料只找到通过剪切板复制粘贴的操作来保存图片,这样别人使用这个程序,当做其他操作的话,就很不方便了,不知道您有什么好的方法可以实现呢,谢谢!
回复 引用
在显示验证码的页面加载完毕后,访问WebBrowser.Document.Images集合,找到存放验证码的那个img元素,使用WebClient下载它显示的图片url即可。
如果验证码不是以img元素显示,就用Document.All集合遍历所有元素,查找那个特定的承载验证图片的元素即可。
需注意的是,有的网站程序把生成验证码与生成图片的步骤放在一起了,只要访问那个图片网址,就会获得一个全新的验证码图片,这种情况下另行下载的与显示的验证码就不匹配了,失去其意义,这样就只能通过WebClient来进行浏览,并分析下载到的Html,下载其中的验证码图片。
回复 引用 查看
2009-12-07 12:15 |
@斯克迪亚
谢谢您的恢复,还有一点疑问的就是:
http://www.cnblogs.com/yuanbao/archive/2008/04/02/1133831.html
是不是使用上面这个页面的第2个方法,通过当前Cookies来访问验证码图片,要不然光使用WebClient/HttpWebRequest获取到的验证码就只会是错误的了,对吗,谢谢
回复 引用
嗯,如果使用WebBrowser的话,最好使用这种方式。
实际上还是会根据对方验证码的机制有所不同,反正有比没有强就是了。
回复 引用 查看
2009-12-08 10:20 |
谢谢,有问题再请教您!
回复 引用
2009-12-08 13:40 |
哇,换照片了,不错!
根据先前讨论的结果去测试吧,一开始就遇到问题了
我的测试页面是
http://www.jcard.cn/Charge/UCardDirectCharge.aspx?category=AAWYVVWYKV&product=AAWYVVWYKV010CV
利用WebBrowser得到的Cookies值是:
__utma=231657348.608242464.1260167980.1260167980.1260167980.1; __utmz=231657348.1260167980.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
但是真正有用的Cookies:ASP.NET_SessionId 没有得到,这个是访问这个页面就会得到的,抓包的时候就有,别人也是通过这个来判断验证码是否正确,所以得不到这个,就无法再次通过HttpWebRequest得到验证码图片了,所以我测试后,根据HttpWebRequest得到的验证码图片,填写进去提交是验证码错误的,用WebBrowser上显示的验证码填进去就是正确的,也就是HttpWebRequest是一个新的请求.
谢谢解答~!
回复 引用
这种读取WebBrowser的Cookies的方法我并未尝试过,但可以想见服务器还是会将其判定为两次不同请求的。
我看了一下,那个验证图片每次访问都会变化,这种情况最好只采用WebRequest访问,这样就不用多次请求那个验证码了,可以规避这种变化的情况。
还有一种变通方法,就是通过WebBrowser的DrawToBitmap()方法截图,把抓图进行裁切,保留验证码部分供别的程序分析。为了便于裁剪,还可以更进一步:为验证码的容器元素设定一个绝对居于左上角的样式,然后再抓图,这样就很容易裁到准确的验证码部分。
回复 引用 查看
2009-12-09 15:07 |
您的思路不错,好的,我再研究下,谢谢!
回复 引用
2009-12-10 11:31 |
@斯克迪亚
嘿嘿,非常感谢,马上去看看!
回复 引用
2009-12-10 17:41 |
不好意思,又有个问题了。
先把代码发给你,你好方便测试。
HtmlDocument doc = webBrowser1.Document;
#region 禁用confirm、alert
((IHTMLWindow2)doc.Window.DomWindow).execScript("function confirm(){return true;} function alert(){}", "javascript");
#endregion
doc.All["ctl00_junUCard_FirstUCardNo"].InnerText = "1111111111111111"; //文本框
doc.All["ctl00_junUCard_FirstUCardPassword"].InnerText = "1231231231231231";
doc.All["ctl00_MiddleTemplate_junCharge_cboServer"].SetAttribute("selectedIndex", "1");
doc.All["ctl00_MiddleTemplate_junCharge_txtUserAccount"].InnerText = "asdasd";
doc.All["ctl00_MiddleTemplate_junCharge_txtUserAccountOk"].InnerText = "asdasd";
doc.All["ctl00_MiddleTemplate_txtRandomCode"].InnerText = textBox1.Text.Trim();
HtmlElement fm = doc.GetElementById("ctl00_MiddleTemplate_ibtnOK");//提交按钮
fm.InvokeMember("click");
WebBrowser是new出来的,所以先的验证码问题解决了。
现在的问题是,当我提交了,他会用alert提示一个消息,这样程序就暂停了,怎么自动点击确定,或者不让它显示出来呢,麻烦你看看,谢谢了。我在看api方面的,没用过,还在研究呢。也许问题绕远了
回复 引用
2009-12-11 14:26 |
@斯克迪亚
1.Html中事先移除触发alert的代码
WebBrowser一触发DocumentCompleted事件,就alert出来
在提交按钮那替换没用
HtmlDocument doc = wb.Document;
doc.All["ctl00_MiddleTemplate_txtRandomCode"].InnerText = textBox1.Text.Trim();
HtmlElement fm = doc.GetElementById("ctl00_MiddleTemplate_ibtnOK");
fm.InvokeMember("click");
在这代码后面替换wb.DocumentText = wb.DocumentText.Replace(...);
不仅没用还造成页面上JS报错.
2.键盘模拟方式点击确定按钮
用您提供的键盘操作,也没用(回车,空格)
鼠标还没试,坐标不好找不说,而且用户体验也不好的.
谢谢一起研究下.
回复 引用
2009-12-11 15:09 |
SendKeys.Send("{Enter}");
而且这个方法,是"向活动应用程序发送击键"
当alert出来的时候,当前应用程序就不是激活状态 -_-! ,哎,真麻烦
回复 引用
2009-12-11 16:34 |
终于解决了,把你邮箱发到我邮箱里,我把例子发给你.谢谢你啦!
回复 引用
2009-12-15 11:46 |
为了让效率提高,还得考虑不加载图片,FLASH等文件.
这个还得研究呢,比如只加载自己需要的验证码图片,呵呵.
回复 引用
那就得用WebRequest啦,就不会加载多余的东西
回复 引用 查看
2009-12-15 20:44 |
http://msdn.microsoft.com/en-us/library/aa770041(VS.85).aspx
给个参考,一起研究
回复 引用
2009-12-16 14:08 |
目前在研究
http://www.codeproject.com/KB/atl/vbmhwb.aspx
相关的帖子太少了.
回复 引用
2009-12-16 14:09 |
因为不仅有先说的加载图片的问题,还有https的问题,访问会弹出提示.
回复 引用
英文的看不太懂,不过想避开那些干扰,最好就是自己实现访问逻辑了哦,用WebRequest。
回复 引用 查看
2009-12-17 10:44 |
恩,我以前就是用的HttpWebRequest,但是这个不太稳定,不适合做WinForm,而且维护率高.
而WebBrowser相对来说,开发简单,稳定,整个网站变了个样才需要更新,所以好多了,继续研究咯,看着头晕晕.
现在在研究csEXWB,我不懂的是,它实现了某些接口,但是怎么用呢,比如屏蔽js消息,IDocHostShowUI.ShowMessage.实现接口方面我不熟.
回复 引用
哦,那我就没有涉猎了~
感觉HttpWebRequest也还行,就是开发起来复杂度大。
回复 引用 查看
2009-12-21 11:30 |
确实很慢
回复 引用
wpf做的效果还是挺不错的.打开有点慢...
回复 引用 查看