Scintilla는 일반 검색과 정규식 검색을 수행할 수 있는 검색 및 바꾸기 기능을 제공합니다. 신틸라의 정규식은 매우 제한된 기본 기능만을 제공한다.
텍스트 검색을 수행할 때 검색 플래그를 설정해야 합니다. CFIND_WHOLEWORD 일치 전체 단일 선택
정규식에는
문자 설명
과 같은 특수 문자가 있습니다.
/( 그룹 일치 시작 태그
에 있는 모든 문자
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_SEARCHANCHOR
char *chText = "검색 텍스트";
SendMessage(SCI_SEARCHANCHOR, 0, 0);
SendMessage(SCI_SEARCHNEXT, flags, (LPARAM)chText);
SCI_SEARCHNEXT
SCI_SEARCHNEXT(int searchFlags, const char *text)
앵커 위치에서 아래쪽으로 시작하여 지정된 텍스트를 검색합니다( 끝 위치는 문서의 끝임), 발견되면 일치하는 텍스트를 선택하고 일치하는 텍스트의 시작 위치를 반환하고, 그렇지 않으면 -1을 반환합니다. SCI_SEARCHNEXT를 사용하기 전에, SCI_SEARCHANCHOR는 보통 앵커 위치를 설정하기 위해 호출됩니다. SCI_SEARCHNEXT 메시지는 보기를 스크롤하지 않으며 커서는 문서 시작 부분 근처의 한쪽에 있습니다. 매크로 기록 기능이 켜져 있으면 SCI_SEARCHNEXT 메시지는 SCN_MACRORECORD 이벤트 알림을 발생시킬 것이다.
SCI_SEARCHPREV
SCI_SEARCHPREV(int searchFlags, const char *text)
앵커 위치부터 위쪽으로 지정된 텍스트를 검색합니다(끝 위치는 문서의 시작입니다). ), 발견되면 일치하는 텍스트를 선택하고 일치하는 텍스트의 시작 위치를 반환하고, 그렇지 않으면 -1을 반환합니다. SCI_SEARCHPREV를 사용하기 전에, SCI_SEARCHANCHOR는 보통 앵커 위치를 설정하기 위해 호출됩니다. SCI_SEARCHPREV 메시지는 보기를 스크롤하지 않으며 커서는 문서 시작 부분 근처에 있습니다. 매크로 기록 기능이 켜져 있으면 SCI_SEARCHPREV 메시지는 SCN_MACRORECORD 이벤트 알림을 트리거합니다.
검색 시작 위치를 설정하고 TRUE(1)를 반환합니다. 비정규식 모드에서는 시작 위치를 끝 위치보다 크게 설정하여 역방향 검색을 수행할 수 있습니다.
2) SCI_GETTARGETSTART
검색 시작 위치로 돌아갑니다.
1) SCI_SETTARGETEND(int pos)
검색 종료 위치를 설정하고 TRUE(1)를 반환합니다.
검색 종료 위치를 반환합니다.
SCI_TARGETFROMSELECTION
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을 반환합니다. 텍스트는 0 종결자로 끝날 필요가 없으며 검색 텍스트 길이는 길이 매개변수로 지정됩니다.
SCI_REPLACETARGET
SCI_REPLACETARGET(int length, const char *text)
SCI_SETTARGETSTART 및 SCI_SETTARGETEND에 설정된 정보를 기반으로 텍스트를 바꿉니다. 길이가 -1이면 텍스트는 0 종결자로 끝나는 상수 문자열이고, 그렇지 않으면 텍스트는 0 종결자로 끝날 필요가 없으며 대체 텍스트의 길이는 다음으로 지정됩니다. 매개변수 길이 및 길이가 반환됩니다. 텍스트를 바꾼 후 커서는 문서 시작 부분 근처의 대체 텍스트 옆에 위치하게 됩니다.
텍스트를 삭제하려면 빈 문자열로 바꾸면 됩니다.
SCI_REPLACETARGETRE
SCI_REPLACETARGETRE(int length, const char *text)
SCI_REPLACETARGET와 유사하지만 정규 표현식을 사용하여 텍스트를 대체합니다. 텍스트에는 /1 - /9와 같은 문자 시퀀스가 포함될 수 있습니다. 최종 생성된 대체 텍스트에서 마지막 정규식 검색 일치 결과는 /1 - /9와 같은 문자 시퀀스를 대체하는 데 사용됩니다.
위는 Scintilla 사용자 가이드(3) - 검색 및 대체 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!