Top > OOoBasic > Generic > TextSearch
*検索 [#p4150b00]

文字列の検索に サービスを利用できます。このサービスでは正規表現を利用した検索もできますが、制限があります。

正規表現にグループを入れても IDL リファレンスにあるような結果が戻らず、正規表現全体に一致した結果しか利用できません。3.2 では治っている様子。

**サービス [#q454a9a2] サービスをインスタンス化して利用します。

 oTextSearch = CreateUnoService("")

検索は searchForward メソッドで前方に、searchBackward メソッドで後方に検索します。

 .util.SearchResult searchBackward( 
    [in] string searchStr, [in] long startPos, [in] long endPos )

 .util.SearchResult searchForward(
    [in] string searchStr, [in] long startPos, [in] long endPos )

setOptions メソッドで検索方法などを設定します。

検索結果は struct です。

Sub textsearch_1
  sTxt = "AbcdEfg"
  oTextSearch = CreateUnoService("")
  aOptions = CreateUnoStruct("")
  With aOptions
    .algorithmType =
    .searchFlag =
    .searchString = "c." ' 検索対象
  End With
  aResult = oTextSearch.searchForward(sTxt,0,Len(sTxt) -1)
  If aResult.subRegExpressions = 1 Then
    msgbox aResult.startOffset(0) & ", " & aResult.endOffset(0)
  End If
End Sub

**検索オプション [#mf42170b]
検索の設定は setOptions メソッドで設定します。オプション設定は struct を利用します。

searchString に検索対象の文字列を設定します。algorithmType プロパティに検索アルゴリズムを設定します。正規表現を利用するときには を設定します。また、拡張正規表現を利用するときには searchFlag に を設定します。

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes