日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CorelDRAWX4的VBA插件开发(二十一)字符串搜索和正则表达式匹配以及文件名关键字处理

發布時間:2023/12/9 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CorelDRAWX4的VBA插件开发(二十一)字符串搜索和正则表达式匹配以及文件名关键字处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這一節想作的學習匯報主要想講下關于字符串的處理,這個往往是我們在程序處理中的關鍵問題,因為所有的信息最終往往是以字符串的形式進行傳達,所以,我們一定要掌握好字符串的處理. 而字符串的處理中,比較常見的就是使用正則表達式來處理了,這一節就從普通的搜索講起,再講到VB中的正則表達式,這里也是只做一個大概的示范,而正則表達式的使用也不是本節能夠講得清的,如果已經掌握的可以忽略, 如果有不了解的同學,可以去專門講解正則表達式的地方進行學習

  • 首先我們先上圖, 在工具頁面新建一個框架和兩個輸入框以及兩個按鈕,然后把按鈕的標題改成文本搜索正則搜索,而他們的名稱后面,我們加上下劃線_以及我們能看得懂的拼音字符wenBenSouSuo,保留前面的名稱是因為是自動生成的,是程序中本來的名稱而且帶了編號很方便我們了解這個是第幾個按鈕了,而后面的拼音是為了讓我們作者自己能直觀的從這個名稱上了解這個按鈕的意義,所以還特意把每個文字的首字母進行大寫處理,另一個也是同理.
  • 然后分別雙擊這兩個兩個按鈕進入按鈕的點擊事件

然后上代碼:

Private Sub CommandButton4_wenBenSouSuo_Click()If ActiveDocument.FilePath <> "" ThenFileName = ActiveDocument.NameIf InStr(FileName, UserForm1.TextBox3.Value) > 0 ThenMsgBox "文件名中含有" & Chr(34) & UserForm1.TextBox3.Value & Chr(34)ElseMsgBox "文件名中不包含該內容"End IfElseMsgBox "當前文件名不存在"End If End SubPrivate Sub CommandButton5_zhenZeSouSuo_Click()If ActiveDocument.FilePath <> "" ThenDim objRegEx As Object, FileName As StringFileName = ActiveDocument.NameSet objRegEx = CreateObject("vbscript.regexp")objRegEx.Pattern = ".*?(" & UserForm1.TextBox4.Value & ").*"objRegEx.Global = TrueSet objMH = objRegEx.Execute(FileName)If objMH.Count > 0 Thensubm0 = objMH(0).submatches(0)Set objRegEx = NothingMsgBox "當前匹配正則中的內容為" & subm0ElseMsgBox "匹配失敗"End IfElseMsgBox "當前文件名不存在"End If End Sub

演示:

代碼淺釋:
首先獲取當前的文件名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插件开发(二十一)字符串搜索和正则表达式匹配以及文件名关键字处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。