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...