测试中经常会遇到对数据的处理,比如我要删除某些特定数据,数据源是从网页请求中抓取,这时候可能复制下来一大堆内容,其中我们只需要特定的某些部分,笔者通常做法是拷贝到notepad++中处理,结合RegTester工具,但是RegTest需要导出匹配数据,不能直接拷贝,稍微麻烦了一点点......于是想用vba写一个正则表达式提取工具好了,又不花时间。(晕,刚想起来其实会有在线工具的,比如:http://tool.oschina.net/regex/),虽然找到了在线工具,还是说一下自己做的这个吧~~~
1、首先是界面设计,很清晰
一个原始文本框,一个正则表达式输入框,一个提取文本显示框,一个执行按钮。
2、程序出入口
由于是单独的一个小工具,简单起见,不做加载宏或者Ribbon了,直接保存一个xla,在文件打开时启动用户窗体展示,窗体关闭后,关闭本文件;实现一个闭环。
(1)打开文件启动UserForm
Private Sub Workbook_Open() Application.Wait Now() + TimeSerial(0, 0, 1) RegGetFrm.Show 0 End Sub (2)关闭UserForm时,关闭文件
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ThisWorkbook.Close End Sub
3、提取文本实现,使用VBScript.RegExp对象,实现了基本的匹配,再进行拼接文本
Set regex = CreateObject("VBScript.RegExp") With regex .pattern = myPattern .Global = True .IgnoreCase = False Set matchs = .Execute(origiText) End With For Each m In matchs txtTarget.Text = txtTarget.Text + m + Chr(10) Next Exit Sub
4、效果图如下,放到了网盘里,需要的同学可以下载玩玩,链接:https://pan.baidu.com/s/1V2O4kd-Jl-mkiHyJMD93Gg 密码:1ily
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有