例如像下面的这样的一堆海量数据(已省略部分),可能有几千组,在不编程的情况下如何快速找到不同的行?可能excel有办法,但是处理起来应该没我这样方便的。
b_start b_end 100790 100790 100729 100729 100703 100703 100717 100717 100707 100707 100694 100999 100640 100640 100633 100633 100620 100620 . . .
首先我们打开“正则表达式测试工具”,把上面的数据复制到软件里,然后输入正则表达式:
^(\d+)\t\1\r\n
最后点击“全部替换”按钮,然后结果一下子就出来了!简单吧?比你的什么excel简单方便多了吧。原理其实也简单,就是把相同的组都删除掉,剩下的就是我们要的结果了。
介绍下这个神器“正则表达式测试工具”,其实市面上这样的软件有很多,但是我对它们都不满意,于是自己用vb6写了个,集成了数据采集,数据筛选替换于一体,还可以Ctrl+R呼出常用快捷表达式,可以自己扩充,还支持连续替换。
最关键的是,它对vb编程者特别照顾,在软件界面空白处快速左击3下即可生成代码。比如上面的框框的,三击后直接粘贴是这样的,是不是很神奇:
'此代码由http://blog.csdn.net/sysdzw/article/details/6141844正则测试工具 v1.1.43”自动生成,请直接调用TestReg过程 Private Sub TestReg() Dim strData As String Dim reg As Object strData = "b_start b_end" & vbCrLf & _ "100790 100790" & vbCrLf & _ "100729 100729" & vbCrLf & _ "100703 100703" & vbCrLf & _ "100717 100717" & vbCrLf & _ "100707 100707" & vbCrLf & _ "100694 100999" & vbCrLf & _ "100640 100640" & vbCrLf & _ "100633 100633" & vbCrLf & _ "100620 100620" Set reg = CreateObject("vbscript.regExp") reg.Global = True reg.IgnoreCase = False reg.MultiLine = True reg.Pattern = "^(\d+)\t\1\r\n" Debug.Print reg.Replace(strData, "") End Sub