Scintilla fournit des fonctions de recherche et de remplacement, qui peuvent effectuer une recherche ordinaire et une recherche d'expression régulière. Les expressions régulières de Scintilla ne fournissent que des fonctions de base très limitées.
Lors de la recherche de texte, vous devez définir l'indicateur de recherche : CFIND_WHOLEWORD correspond à la sélection unique entière
Dans les expressions régulières, il existe des caractères spéciaux :
Description du caractère
Correspond à n'importe quel caractère
/( Correspondance de groupe. balise de début
SCI_FINDTEXT(int flags, TextToFind *ttf)
SCI_SEARCHANCHOR
Définissez la position de l'ancre de recherche sur la position proche du début du document dans les informations de sélection actuelle et renvoyez TRUE (1). Ce message est généralement utilisé avant d'appeler SCI_SEARCHNEXT ou SCI_SEARCHPREV. Si la fonction d'enregistrement de macro est activée, le message SCI_SEARCHANCHOR déclenchera la notification d'événement SCN_MACRORECORD.
int flags = SCFIND_MATCHCASE | SCFIND_WHOLEWORD;
char *chText = "texte de recherche";
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) { ... }
SendMessage(SCI_SEARCHNEXT, flags, (LPARAM)chText);
SCI_SEARCHNEXT
Recherchez le texte spécifié en partant de la position d'ancrage vers le bas (le la position de fin est la fin du document), si elle est trouvée, sélectionne le texte correspondant et renvoie la position de départ du texte correspondant, sinon renvoie -1. Avant d'utiliser SCI_SEARCHNEXT, SCI_SEARCHANCHOR est généralement appelé pour définir la position de l'ancre. Le message SCI_SEARCHNEXT ne provoque pas le défilement de la vue et le curseur se trouve sur un côté près du début du document. Si la fonction d'enregistrement de macro est activée, le message SCI_SEARCHNEXT déclenchera la notification d'événement SCN_MACRORECORD.
SCI_SEARCHPREV
SCI_SEARCHPREV(int searchFlags, const char *text)
SCI_SETTARGETSTART, SCI_GETTARGETSTART
1) SCI_SETTARGETSTART(int pos)
2) SCI_GETTARGETSTART
Retour à la position de départ de la recherche.
SCI_SETTARGETEND, SCI_GETTARGETEND
1) SCI_SETTARGETEND(int pos)
Définissez la position de fin de recherche et renvoyez TRUE (1).2) SCI_GETTARGETEND
Renvoie la position finale de la recherche.
SCI_TARGETFROMSELECTION
SCI_TARGETFROMSELECTION
Définissez la position de début et la position de fin de la recherche en fonction du message de sélection actuel, renvoyez TRUE (1).
SCI_SETSEARCHFLAGS, SCI_GETSEARCHFLAGS
1) SCI_SETSEARCHFLAGS(int searchFlags)
2) SCI_GETSEARCHFLAGS
Renvoie les indicateurs de recherche.
SCI_SEARCHINTARGET
SCI_SEARCHINTARGET(int length, const char *text)
Recherchez le texte spécifié en fonction des informations définies par SCI_SETTARGETSTART, SCI_SETTARGETEND, SCI_SETSEARCHFLAGS, etc. S'il est trouvé, renvoie la position de départ du texte correspondant, sinon renvoie -1. Le texte ne doit pas nécessairement se terminer par un terminateur 0 et la longueur du texte recherché est spécifiée par le paramètre length.
SCI_REPLACETARGET
SCI_REPLACETARGET(int length, const char *text)
Remplacez le texte en fonction des informations définies par SCI_SETTARGETSTART et SCI_SETTARGETEND. Si la longueur est -1, alors le texte est une chaîne constante se terminant par un terminateur 0 et la longueur du texte est renvoyée. Dans le cas contraire, le texte ne doit pas nécessairement se terminer par un terminateur 0 et la longueur du texte de remplacement est spécifiée par le paramètre de longueur. longueur du paramètre et la longueur est renvoyée. Après avoir remplacé le texte, le curseur sera positionné à côté du texte de remplacement, près du début du document.
Si vous souhaitez supprimer un morceau de texte, vous pouvez le remplacer par une chaîne vide.
SCI_REPLACETARGETRE
SCI_REPLACETARGETRE(int length, const char *text)
Similaire à SCI_REPLACETARGET, sauf que les expressions régulières sont utilisées pour remplacer le texte. Le texte peut contenir des séquences de caractères telles que /1 - /9 Dans le texte de remplacement généré final, le dernier résultat correspondant à la recherche d'expression régulière sera utilisé pour remplacer les séquences de caractères telles que /1 - /9.
Ce qui précède est le contenu du Guide de l'utilisateur de Scintilla (3) - Recherche et remplacement Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !