Scintilla は、通常の検索と正規表現検索を実行できる検索機能と置換機能を提供します。 Scintilla の正規表現は、非常に限られた基本機能のみを提供します。
テキスト検索を実行するときは、検索フラグを設定する必要があります:
検索フラグ
正規表現には、いくつかの特殊文字があります:
文字の説明
。任意の文字に一致します
SCI_FINDTEXT(int flags, TextToFind *ttf)
int flags = SCFIND_MATCHCASE | SCFIND_WHOLEWORD; TextToFind ttf; ttf.chrg.cpMin = 0; ttf.chrg.cpMax = SendMessage(SCI_GETLENGTH, 0, 0); ttf.lpstrText = "search text"; int pos = SendMessage(SCI_FINDTEXT, flags, (LPARAM)&ttf); if (-1 != pos) { ... }SCI_SEARCHANCHORSCI_SEARCHANCHOR
検索アンカー位置を現在の選択情報の文書の先頭付近の位置に設定し、TRUE(1)を返します。このメッセージは通常、SCI_SEARCHNEXT または SCI_SEARCHPREV を呼び出す前に使用されます。マクロ記録機能がオンになっている場合、SCI_SEARCHANCHOR メッセージによって SCN_MACRORECORD イベント通知がトリガーされます。
char *chText = "検索テキスト";
SendMessage(SCI_SEARCHANCHOR, 0, 0);
SendMessage(SCI_SEARCHNEXT, flags, (LPARAM)chText);
SCI _SEARCH次へ
SCI_SEARCHNEXT(int searchFlags, const char *text)
指定されたテキストをアンカー位置から下方向に検索します (終了位置はドキュメントの末尾です)。見つかった場合は、一致するテキストを選択し、一致したテキストの開始位置を返します。それ以外の場合は -1 が返されます。通常、SCI_SEARCHNEXT を使用する前に、SCI_SEARCHANCHOR を呼び出してアンカー位置を設定します。 SCI_SEARCHNEXT メッセージによってビューはスクロールされず、カーソルはドキュメントの先頭近くの片側に移動します。マクロ記録機能がオンになっている場合、SCI_SEARCHNEXT メッセージによって SCN_MACRORECORD イベント通知がトリガーされます。
アンカー位置から上に向かって指定されたテキストを検索します (終了位置はドキュメントの先頭です)。見つかった場合は、一致するテキストを選択し、一致するテキストの開始位置、そうでない場合は - 1 を返します。通常、SCI_SEARCHPREV を使用する前に、SCI_SEARCHANCHOR を呼び出してアンカー位置を設定します。 SCI_SEARCHPREV メッセージによってビューがスクロールされることはなく、カーソルはドキュメントの先頭に近い側にあります。マクロ記録機能がオンになっている場合、SCI_SEARCHPREV メッセージによって SCN_MACRORECORD イベント通知がトリガーされます。
検索開始位置を設定し、TRUE(1)を返します。非正規表現モードでは、開始位置を終了位置より大きく設定して、逆方向検索を実行できます。
2) SCI_GETTARGETSTART
検索開始位置に戻ります。
1) SCI_SETTARGETEND(int pos)
検索終了位置を設定し、TRUE(1)を返します。
2) SCI_GETTARGETEND
は検索終了位置を返します。
SCI_TARGETFROMSELECTION
現在の選択メッセージに基づいて検索開始位置と終了位置を設定し、TRUE (1) を返します。
検索フラグを設定し、TRUE (1) を返します。
2) SCI_GETSEARCHFLAGS
検索フラグを返します。
SCI_SEARCHINTARGET(int length, const char *text)
SCI_SETTARGETSTART、SCI_SETTARGETEND、SCI_SETSEARCHFLAGS などで設定された情報をもとに、指定されたテキストを検索します。見つかった場合は、一致するテキストの開始位置を返し、見つからない場合は -1 を返します。テキストは 0 ターミネータで終わる必要はなく、検索テキストの長さは length パラメータで指定されます。
SCI_REPLACETARGET
SCI_REPLACETARGET(int length, const char *text)
SCI_SETTARGETSTART と SCI_SETTARGETEND で設定された情報に基づいてテキストを置換します。 length が -1 の場合、テキストは 0 ターミネータで終わる定数文字列であり、テキストの長さが返されます。それ以外の場合、テキストは 0 ターミネータで終わる必要はなく、置換テキストの長さは、パラメータの長さを指定すると、長さが返されます。テキストを置換した後、カーソルは文書の先頭近くの置換テキストの横に配置されます。
テキストの一部を削除したい場合は、空の文字列に置き換えることができます。
SCI_REPLACETARGETRE
SCI_REPLACETARGETRE(int length, const char *text)
テキストの置換に正規表現が使用される点を除いて、SCI_REPLACETARGET と似ています。テキストには /1 ~ /9 などの文字シーケンスを含めることができます。最終的に生成される置換テキストでは、最後の正規表現検索一致結果が /1 ~ /9 などの文字シーケンスを置換するために使用されます。
上記は Scintilla ユーザーガイド (3) - 検索と置換の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。