Scintilla使用指南 3 搜尋和替換

2021-04-18 05:58:00 字數 3399 閱讀 3760

scintilla

提供了搜尋和替換功能,它可以進行普通查詢和正規表示式查詢。scintilla的正規表示式,只提供了很有限的一些基本功能。

在進行文字搜尋時,需要設定搜尋標誌:

搜尋標誌

說明scfind_matchcase

匹配大小寫

scfind_wholeword

匹配整個單選

scfind_wordstart

匹配單詞開始

scfind_regexp

正規表示式匹配

scfind_posix

posix

相容模式的正規表示式匹配(如使用(*)而不是/(*/))

在非正規表示式模式下,當end小於start時,可以向上反向搜尋;在正規表示式模式下,只能向下正向搜尋。

在正規表示式中,有一些特殊字元:

字元說明

.

匹配任一字元

/(

分組匹配開始標記

/)

分組匹配結束標記

/n n

取值1 – 9,表示分組匹配的結果

/<

匹配單詞開始

/>

匹配單詞結束

/x x

將被解釋為普通字元,例如:/[被解釋為字元[

[…]

匹配中的任一字元,如[a-za-z]匹配任一字母

[^…]

匹配不在中的任一字元

^

匹配行開始

$

匹配行結束

*

匹配0次或多次

+

匹配1次或多次

sci_findtext(int flags, texttofind *ttf)

根據搜尋標誌flags搜尋文字。如果找到,返回匹配文字的開始位置,並設定ttf.chrgtext.cpmin和ttf.chrgtext.cpmax為匹配文字的開始位置和結束位置,否則返回-1。sci_findtext不會改變當前的選擇資訊。

intflags = scfind_matchcase | scfind_wholeword;

texttofind ttf;

ttf.chrg.cpmin = 0;

ttf.chrg.cpmax = sendmessage(sci_getlength, 0, 0);

ttf.lpstrtext = "search text";

intpos = sendmessage(sci_findtext, flags, (lparam)&ttf);

if(-1 != pos)

sci_searchanchor

設定搜尋anchor位置為當前選擇資訊中靠近文件開始的位置,返回true(1)。這個訊息,通常用在呼叫sci_searchnext或sci_searchprev之前。如果巨集記錄功能開啟,sci_searchanchor訊息將會觸發scn_macrorecord事件通知。

intflags = scfind_matchcase | scfind_wholeword;

char

*chtext = "search text";

sendmessage(sci_searchanchor, 0, 0);

sendmessage(sci_searchnext, flags, (lparam)chtext);

sci_searchnext(int searchflags, const char *text)

從anchor位置向下開始搜尋指定文字(結束位置為文件結尾),如果找到,選中匹配文字,返回匹配文字的開始位置,否則返回-1。在使用sci_searchnext之前,通常會呼叫sci_searchanchor設定anchor位置。sci_searchnext訊息不會導致檢視發生滾動,並且游標處於靠近文件開始的一邊。如果巨集記錄功能開啟,sci_searchnext訊息將會觸發scn_macrorecord事件通知。

sci_searchprev(int searchflags, const char *text)

從anchor位置向上開始搜尋指定文字(結束位置為文件開始),如果找到,選中匹配文字,返回匹配文字的開始位置,否則返回-1。在使用sci_searchprev之前,通常會呼叫sci_searchanchor設定anchor位置。sci_searchprev訊息不會導致檢視發生滾動,並且游標處於靠近文件開始的一邊。如果巨集記錄功能開啟,sci_searchprev訊息將會觸發scn_macrorecord事件通知。

1)sci_settargetstart(int pos)

設定搜尋開始位置,返回true(1)。在非正規表示式模式下,你可以設定開始位置大於結束位置,進行反向搜尋。

2)sci_gettargetstart

返回搜尋開始位置。

1)sci_settargetend(int pos)

設定搜尋結束位置,返回true(1)。

2)sci_gettargetend

返回搜尋結束位置。

sci_targetfromselection

根據當前選擇訊息,設定搜尋開始位置和結束位置,返回true(1)。

1)sci_setsearchflags(int searchflags)

設定搜尋標誌,返回true(1)。

2)sci_getsearchflags

返回搜尋標誌。

sci_searchintarget(int length, const char *text)

根據sci_settargetstart、sci_settargetend、sci_setsearchflags等設定的資訊,搜尋指定文字。如果找到,返回匹配文字的開始位置,否則返回-1。text不必以0終結符結尾,其搜尋文字長度由引數length指定。

sci_replacetarget(int length, const char *text)

根據sci_settargetstart、sci_settargetend設定的資訊,替換文字。如果length為-1,則text是以0終結符結尾的常量字串,返回text的長度;否則,text不必以0終結符結尾,替換文字長度由引數length指定,返回length。替換文字後,游標將位於替換文字靠近文件開始的一邊。

如果要刪除一段文字,可以用空字串進行替換。

sci_replacetargetre(int length, const char *text)

與sci_replacetarget相似,不同的是使用正規表示式替換文字。在text中,可以包含/1 - /9這樣的字串行,最後生成的替換文字中,將用上一次正規表示式搜尋匹配結果,替換/1 - /9這樣的字串行。

Scintilla使用指南 1 簡介

scintilla 是乙個開源的編輯元件,它不僅具有通常的編輯功能,而且還提供了語法樣式 摺疊 標籤 自動完成和提示等功能。windows 版本的scintilla,是乙個標準的windows元件,使用者可以通過sendmessage函式傳送訊息,與其進行互動。sendmessage函式介面如下所示...

Scintilla使用指南 1 簡介

scintilla是乙個開源的編輯元件,它不僅具有通常的編輯功能,而且還提供了語法樣式 摺疊 標籤 自動完成和提示等功能。windows版本的scintilla,是乙個標準的windows元件,使用者可以通過sendmessage函式傳送訊息,與其進行互動。sendmessage函式介面如下所示 l...

C3D使用指南

c3d 官方使用者指南 1.c3d特徵提取 1.1 命令引數介紹 官方github專案上同時提供了c3d v1.0和c3d v1.1兩個版本,以下方法適用於v1.0 官方提供的特徵提取demo路徑為 c3d master c3d v1.0 examples c3d feature extractio...