測試實驗室
記錄一些用Linux Desktop的心得。
網頁
首頁
9/02/2012
在 LibreOffice Basic 中使用正規表示式搜尋
工作需要自動開啟特性名字的檔案,打算用正規表示式解析檔案名稱,然而LibreOffice Basic本身沒有正規表示式可以用,以下為調用UNO service的方法。
Code
Dim Obj As Object
Dim result as Object
Dim search_opt as object
Obj = createUnoService("com.sun.star.util.TextSearch")
result = createUnoService("com.sun.star.util.SearchResult")
'搜尋設定
search_opt = createUnoStruct("com.sun.star.util.SearchOptions")
'欲比對的 pattern,可用 () 切出 substr
search_opt.searchString="/([a-zA-Z0-9]*).xls"
'設定以正規表示法搜尋
search_opt.algorithmType=com.sun.star.util.SearchAlgorithms.REGEXP
Obj.setOptions(search_opt)
'搜尋字串為 /home/abc/test.xls
result = Obj.SearchForward("/home/abc/test.xls",0,len("/home/abc/test.xls"))
if result.subRegExpressions>0 then
' startoffset(0) 為整個表示式符合的位置,此例回傳 9
Msgbox result.startoffset(0)
' startoffset(1) 為第一個 substr 的位置,此例回傳 10
Msgbox result.startoffset(1)
end if
較新的文章
較舊的文章
首頁
訂閱:
文章 (Atom)