測試中常常會遇到對數據的處理,好比我要刪除某些特定數據,數據源是從網頁請求中抓取,這時候可能複製下來一大堆內容,其中咱們只須要特定的某些部分,筆者一般作法是拷貝到notepad++中處理,結合RegTester工具,可是RegTest須要導出匹配數據,不能直接拷貝,稍微麻煩了一點點......因而想用vba寫一個正則表達式提取工具好了,又不花時間。(暈,剛想起來其實會有在線工具的,好比:http://tool.oschina.net/regex/),雖然找到了在線工具,仍是說一下本身作的這個吧~~~正則表達式
一、首先是界面設計,很清晰工具
一個原始文本框,一個正則表達式輸入框,一個提取文本顯示框,一個執行按鈕。測試
二、程序出入口.net
因爲是單獨的一個小工具,簡單起見,不作加載宏或者Ribbon了,直接保存一個xla,在文件打開時啓動用戶窗體展現,窗體關閉後,關閉本文件;實現一個閉環。設計
(1)打開文件啓動UserFormorm
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 Subblog
三、提取文本實現,使用VBScript.RegExp對象,實現了基本的匹配,再進行拼接文本ip
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 Subget
四、效果圖以下,放到了網盤裏,須要的同窗能夠下載玩玩,連接:https://pan.baidu.com/s/1V2O4kd-Jl-mkiHyJMD93Gg 密碼:1ily