>백엔드 개발 >PHP 튜토리얼 >신틸라 사용자 안내서(3) - 찾기와 바꾸기

신틸라 사용자 안내서(3) - 찾기와 바꾸기

黄舟
黄舟원래의
2017-01-17 10:30:242259검색

Scintilla는 일반 검색과 정규식 검색을 수행할 수 있는 검색 및 바꾸기 기능을 제공합니다. 신틸라의 정규식은 매우 제한된 기본 기능만을 제공한다.
텍스트 검색을 수행할 때 검색 플래그를 설정해야 합니다. CFIND_WHOLEWORD 일치 전체 단일 선택

scfind_wordstart 일치 단어 시작


scfind_regexp 정규 표현식 일치


scfind_posix posix 호환 모드 일치(예: /(*/) 대신 (*) 사용)


비정규 표현식 모드에서 end가 start보다 작은 경우, 위쪽 및 뒤쪽으로 검색할 수 있습니다. 정규식 모드에서는 아래쪽으로만 검색할 수 있습니다.

정규식에는

문자 설명

과 같은 특수 문자가 있습니다.

/( 그룹 일치 시작 태그

/) 그룹 일치 종료 태그


/n n은 1~9의 값을 취하며, 이는 그룹 일치의 결과를 나타냅니다.


/2706406fbdb2c6097a6a6bf5186d17ed 단어의 끝과 일치


/x x는 일반 문자로 해석됩니다. [는 문자 [


[…]로 해석됩니다. []의 모든 문자와 일치합니다. 예를 들어 [a-zA-Z]는 모든 문자와 일치합니다. ] 일치하지 않음 []

에 있는 모든 문자

^ 줄의 시작과 일치


$ 줄의 끝과 일치


* 0회 이상 일치


+ 1회 이상 일치


SCI_FINDTEXT


SCI_FINDTEXT(int flags, TextToFind *ttf)

검색 검색 플래그를 기반으로 한 텍스트입니다. 발견되면 일치하는 텍스트의 시작 위치를 반환하고 ttf.chrgText.cpMin 및 ttf.chrgText.cpMax를 일치하는 텍스트의 시작 및 끝 위치로 설정합니다. 그렇지 않으면 -1이 반환됩니다. SCI_FINDTEXT는 현재 선택 정보를 변경하지 않는다.


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


SCI_SEARCHANCHOR

검색 앵커 위치를 현재 선택 정보에서 문서 시작 부분 근처의 위치로 설정하고 TRUE(1)를 반환합니다. 이 메시지는 보통 SCI_SEARCHNEXT나 SCI_SEARCHPREV를 호출하기 전에 사용된다. 매크로 기록 기능이 켜져 있으면 SCI_SEARCHANCHOR 메시지는 SCN_MACRORECORD 이벤트 알림을 트리거합니다.


int 플래그 = SCFIND_MATCHCASE | SCFIND_WHOLEWORD;

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 이벤트 알림을 트리거합니다.

SCI_SETTARGETSTART, SCI_GETTARGETSTART

1) SCI_SETTARGETSTART(int pos)

검색 시작 위치를 설정하고 TRUE(1)를 반환합니다. 비정규식 모드에서는 시작 위치를 끝 위치보다 크게 설정하여 역방향 검색을 수행할 수 있습니다.
2) SCI_GETTARGETSTART
검색 시작 위치로 돌아갑니다.

SCI_SETTARGETEND, SCI_GETTARGETEND


1) SCI_SETTARGETEND(int pos)
검색 종료 위치를 설정하고 TRUE(1)를 반환합니다.

2) SCI_GETTARGETEND

검색 종료 위치를 반환합니다.


SCI_TARGETFROMSELECTION

SCI_TARGETFROMSELECTION
현재 선택 메시지에 따라 검색 시작 위치와 종료 위치를 설정하고 TRUE(1)를 반환합니다.

SCI_SETSEARCHFLAGS, SCI_GETSEARCHFLAGS


1) SCI_SETSEARCHFLAGS(int searchFlags)
검색 플래그를 설정하고 TRUE(1)를 반환합니다.
2) SCI_GETSEARCHFLAGS
검색 플래그를 반환합니다.

SCI_SEARCHINTARGET

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)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.