CorelDRAWX4的VBA插件开发(二十一)字符串搜索和正则表达式匹配以及文件名关键字处理
這一節想作的學習匯報主要想講下關于字符串的處理,這個往往是我們在程序處理中的關鍵問題,因為所有的信息最終往往是以字符串的形式進行傳達,所以,我們一定要掌握好字符串的處理. 而字符串的處理中,比較常見的就是使用正則表達式來處理了,這一節就從普通的搜索講起,再講到VB中的正則表達式,這里也是只做一個大概的示范,而正則表達式的使用也不是本節能夠講得清的,如果已經掌握的可以忽略, 如果有不了解的同學,可以去專門講解正則表達式的地方進行學習
- 首先我們先上圖, 在工具頁面新建一個框架和兩個輸入框以及兩個按鈕,然后把按鈕的標題改成文本搜索和正則搜索,而他們的名稱后面,我們加上下劃線_以及我們能看得懂的拼音字符wenBenSouSuo,保留前面的名稱是因為是自動生成的,是程序中本來的名稱而且帶了編號很方便我們了解這個是第幾個按鈕了,而后面的拼音是為了讓我們作者自己能直觀的從這個名稱上了解這個按鈕的意義,所以還特意把每個文字的首字母進行大寫處理,另一個也是同理.
- 然后分別雙擊這兩個兩個按鈕進入按鈕的點擊事件
然后上代碼:
演示:
代碼淺釋:
首先獲取當前的文件名ActiveDocument.Name儲存在FileName當中,然后判斷一下文件名當中有沒有輸入框TextBox3的值Value,如果匹配到了的話,InStr會返回一個匹配的第一次的位置也就是下標,所以如果匹配上了一定是個正數,所以用了>0,未匹配上就是0
后面關于正則表達式
首先設置一下objRegEx為一個對象Object,然后讓他Set objRegEx = CreateObject("vbscript.regexp"),讓它賦值為一個新建的對象VB腳本(script就是腳本的意思)中的regexp(regexp就是正則的意思)
Pattern 是就是正則表達式的匹配式子儲存的地方
Global 是全局匹配的意思,如果是true的話 當匹配上了第一個之后程序仍然會再搜索第二次
Execute是在某字符串里面執行正則搜索的函數功能, 后面的括號里面填上需要被搜索的字符串,因為帶了括號,所以是有返回值的,所以用objMH 來儲存這個對象,這個對象里面有兩個屬性,其中一個是Count 記錄了匹配總數,所以我們就可以用來檢測匹配成功與否,所以>0就是成功匹配
objMH(0)就是其中第一次正則匹配成功所儲存的字符串
.submatches(0)就是正則表達式內的第一個括號內匹配的內容
Set objRegEx = Nothing 再把這個objRegEx 從內存中回收不占用內存空間
總結
以上是生活随笔為你收集整理的CorelDRAWX4的VBA插件开发(二十一)字符串搜索和正则表达式匹配以及文件名关键字处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旧题新做:从idy的视角看数据结构
- 下一篇: GZIP pre-compression