Syntaxe de recherche utilisant des expressions rationnelles.

#

# Xiphos

Andy Piper
Pierre Benz
Dr Peter von Kaehne
Karl Kleinpaste
Matthew Talbert

# Syntaxe du moteur de recherche

La recherche au moyen d’expressions rationnelles permet d’effectuer des recherches simples ou complexes sur des chaînes de caractères correspondant à un motif, ou un ensemble de motifs séparés par une barre verticale « | ». Alors qu’un motif peut être crée pour rechercher un mot ou une phrase, un motif simple composé d’un seul mot ne permettra pas de rechercher seulement ce mot, mais toute séquence de caractères contenant ce mot. Une recherche du mot « droit » ne retournera pas seulement la liste des versets contenant le mot « droit » mais aussi ceux contenant les mots « adroit », « droite ». La recherche de « ne pas » ne retournera pas les versets contenant les mots « ne » ET « pas » mais les versets contenant la séquence « ne pas » avec une espace entre les deux mots. Une recherche de « ne pas » trouvera aussi les versets contenant « ne passe ».

La puissance des expressions rationnelles provient des motifs utilisés pour définir une clé de recherche. Un motif est constitué de caractères ordinaires et de quelques caractères spéciaux qui sont interprétés suivant des règles précises. Les caractères spéciaux sont \[^*$?+. Les autres caractères sont des caractères ordinaires. La barre oblique inverse « \ », est utilisée pour convertir les caractères spéciaux en caractères ordinaires et inversement les caractères ordinaires en caractères spéciaux.

Exemple : le motif « .amour\. » retournera les phrases qui se terminent par « son amour » ou « l’amour » ou « d’amour » suivi d’un point. Le premier point dans .amour\. est un caractère spécial dont la signification est de remplacer n’importe quel caractère à cette position. La barre oblique inverse dans .amour\. indique que le point suivant ne doit pas être considéré comme un caractère spécial, mais comme un point ordinaire.

# Règles des requêtes de recherche à l’aide des expressions rationnelles

« . » Le point remplace n’importe quel caractère.

« * » L’astérisque correspond à toute répétition de caractères d’une chaîne ou d’une expression rationnelle la précédant, incluant zéro caractère.

« + » Le signe plus correspond à une répétition ou plus de la précédente expression régulière. Il joue un rôle similaire à « * » (astérisque), mais ne correspond pas à zéro occurrence.

« ? » Le point d’interrogation correspond à aucune ou une instance de la précédente expression rationnelle. Il est généralement utilisé pour correspondre à des caractères uniques.

« [...] » Les crochets englobent un ensemble de caractères pour réaliser une correspondance dans une seule expression rationnelle.

« ^ » La puissance comme premier caractère à l’intérieur d’accolades inverse la signification de l’ensemble des caractères de l’expression rationnelle.

« ^ » La puissance en dehors d’accolades correspond au début d’une ligne.

« $ » Le signe dollar à la fin d’une expression rationnelle correspond à la fin d’une ligne.

« | » La barre verticale signifie OU logique.

« () » Les parenthèses servent à regrouper des expressions. Non supporté dans Xiphos !

« \ » La barre oblique inverse échappe un caractère spécial, ce qui signifie que le caractère est interprété littéralement.

« \ » La barre oblique inverse utilisée devant un caractère ordinaire, le transforme en caractère spécial.

## Le point

Le point « . » remplace n’importe quel caractère y compris l’espace et d’autres caractères non alphabétiques. Par exemple : « 13. » correspond à 13 plus au moins un caractère (incluant une espace), ce qui retourne 1133, 11333 mais pas 13 (un caractère supplémentaire est manquant).

## L’astérisque

L’astérisque « * » correspond à toute répétition de caractères d’une chaîne ou d’une expression rationnelle la précédant, incluant zéro caractère. Utiliser cette combinaison Point Astérisque « .* » après une chaîne de recherche fréquemment rencontrée peut prendre un temps très long, pouvant faire croire que le programme est bloqué. Exemple : « 1133* » correspond à 11 plus un ou plus de 3 ainsi que d’autres caractères : 113, 1133, 111312 et ainsi de suite.

## Le signe plus

Le signe plus « + » correspond à une répétition ou plus de la précédente expression rationnelle. Il joue un rôle similaire à « * » (astérisque), mais ne correspond pas à zéro occurrence. Utiliser cette combinaison Point Signe Plus « .+ » après une chaîne de recherche fréquemment rencontrée peut prendre un temps très long, pouvant faire croire que le programme est bloqué. Exemple : Recherche de « abc » retourne « abcc », « abcerty », mais pas « abdf » ou « ab ».

## Le point d’interrogation

Le point d’interrogation « ? » correspond à zéro ou une instance au plus du caractère ou motif précédent. Exemple : « rai?n » retournera « rang » et « grain ».

## Les crochets

Les crochets « [...] » entourent un ensemble de caractères pour réaliser une correspondance dans une seule expression rationnelle. Les caractères « . », « * », « + », « ? » perdent leur caractère spécial quand ils sont placés entre crochets. Un signe « - » indique une plage de caractères. Si vous voulez qu’un caret « ^ » fasse partie de l’ensemble, ne le placez pas en premier après le crochet de gauche, sinon il sera un caractère spécial. Pour inclure un « ] » dans l’ensemble, faites en sorte qu’il soit le premier caractère (ou le deuxième après un « ^ » spécial) de l’ensemble. Pour inclure un signe « - » dans le jeu, il faut qu’il soit le premier (ou le deuxième après un « ^ » spécial) ou le dernier caractère du jeu. « [xyz] » correspond aux caractères x, y ou z. « [c-n] » correspond à tout caractère compris entre c et n. « [B-Pk-y] » correspond à tout caractère compris entre B et P et entre k et y. « [a-z0-9] » correspond à toute lettre en minuscule et à tout chiffre. « [^b-d] » correspond à tous les caractères sauf ceux compris entre b et d. Ceci est un exemple de l’inversion de la signification de l’expression rationnelle suivante grâce à l’opérateur « ^ » (prenant le même rôle que « ! » dans un contexte différent). Les séquences combinées de caractères entre crochets correspondent à des modèles de mots communs. « [Oo][Uu][Ii] » correspond à oui, Oui, OUI, oUi et ainsi de suite.

## La puissance en premier caractère entre des crochets

Si la puissance « ^ » est le premier caractère d’une expression entre crochets, il inverse la signification de l’ensemble des caractères de l’expression rationnelle.

## La puissance correspond au début d’une ligne

La puissance « ^ » correspond au début d’une ligne. Toutes les réponses correspondront au début d’une ligne comportant la séquence recherchée. Cependant, comme certains modules de textes contiennent des caractères non filtrés en début de ligne, cette fonction ne retourne pas toujours les résultats escomptés. Ajouter quelques points après la puissance, permet de contourner le défaut de format de certains textes. « ^Au commencement » recherche les phrases commençant par « Au commencement ». (Mais il est préférable d’utiliser : « ^....Au commencement »).

## Le signe dollar signifie une fin de ligne

Le signe dollar « $ » à la fin d’une expression régulière correspond à la fin d’une ligne. « XXX$ » correspond à XXX à la fin d’une ligne. « ^$ » correspond à des lignes blanches. Cependant, comme certains modules de textes contiennent des caractères non filtrés en fin de ligne, cette fonction ne retourne pas toujours les résultats escomptés. Ainsi ajouter quelques points après le dollar permet de contourner ce défaut de format de certains textes. « Amen\.$ » retourne les phrases qui se terminent par « Amen. » (Il est préférable d’utiliser « Amen\....$ », « Amen\..........$ », ou même « Amen\....................$ »).

## La barre verticale

La barre verticale « | » correspond à l’opérateur logique OU et permet donc de définir une alternative. « Jean | Pierre » retrouve les phrases contenant « Jean » ou « Pierre ». De même, « Jean.*Pierre | Pierre.*Jean » retourne « Jean ... Pierre » ou « Pierre ... Jean ». (* ralentit la recherche). « douleur | souffrance | tourment » retourne douleur ou souffrance ou tourment.

## Les parenthèses

L’usage des parenthèses « () » n’est pas supporté !

## La barre oblique inverse précédant un caractère spécial

La barre oblique inverse précédant un caractère spécial « \* » indique que ce caractère n’a plus de signification spéciale, mais devient un caractère ordinaire. amen\. retourne amen. mais pas ament et ne trouvera donc pas firmament.

## La barre oblique inverse précédant un caractère ordinaire

La barre oblique inverse précédant un caractère ordinaire « \o » indique que ce caractère n’est plus utilisé comme tel mais prend une signification spéciale.

\b ce symbole d’ancrage indique une limite de mot obligatoire, à l’endroit où il est inséré dans le motif. Par contre, s’il est utilisé entre crochets, il correspond au caractère « retour arrière ». \bjuste\b retourne juste mais pas injuste ou justesse.

\B indique qu’il n’y a pas de limite de mot \Bleur\B trouve chaleureuse mais pas chaleur ou leurre.

\d représente un chiffre, identique à [0-9].

\D signifie non-numérique, identique à [^0-9].

\s représente une espace.

\S signifie pas d’espace.

\w signifie alphanumérique, identique à [a-zA-Z0-9_].

\W signifie non alphanumérique, identique à [^a-zA-Z0-9_].