首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用vba做一个正则表达式提取文本工具

使用vba做一个正则表达式提取文本工具

作者头像
未来sky
发布2018-08-30 14:33:33
1.8K0
发布2018-08-30 14:33:33
举报
文章被收录于专栏:好好学习吧好好学习吧

     测试中经常会遇到对数据的处理,比如我要删除某些特定数据,数据源是从网页请求中抓取,这时候可能复制下来一大堆内容,其中我们只需要特定的某些部分,笔者通常做法是拷贝到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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档