使用vba做一個正則表達式提取文本工具


     測試中經常會遇到對數據的處理,比如我要刪除某些特定數據,數據源是從網頁請求中抓取,這時候可能復制下來一大堆內容,其中我們只需要特定的某些部分,筆者通常做法是拷貝到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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM