Les caractères et leurs classes

Parent Previous Next

Les caractères et leurs classes



Jusqu'à présent les recherches étaient plutôt basiques. Nous allons maintenant étudier les classes de caractères qui permettent de spécifier plusieurs caractères ou types de caractères à rechercher. Cela reste encore assez simple.

/gr[ao]s/


Une classe de caractères est écrite entre crochets et sa signification est simple : une des lettres qui se trouve entre les crochets peut convenir. Cela veut donc dire que l'exemple précédent va trouver les mots « gras » et « gros », car la classe, à la place de la voyelle, contient aux choix les lettres a et o. Beaucoup de caractères peuvent être utilisés au sein d'une classe :

/gr[aèio]s/


Ici, la regex trouvera les mots « gras », « grès », « gris » et « gros ». Ainsi donc, en parlant d'une tartiflette, qu'elle soit grosse ou grasse, cette regex le saura :


Chaîne

Regex

Résultat

Cette tartiflette est grosse

/Cette tartiflette est gr[ao]sse/

true

Cette tartiflette est grasse

/Cette tartiflette est gr[ao]sse/

true


Les intervalles de caractères


Toujours au sein des classes de caractères, il est possible de spécifier un intervalle de caractères. Si nous voulons trouver les lettres allant de a à o, on écrira [a-o]. Si n'importe quelle lettre de l'alphabet peut convenir, il est donc inutile de les écrire toutes : écrire [a-z] suffit.

Plusieurs intervalles peuvent être écrits au sein d'une même classe. Ainsi, la classe [a-zA-Z] va rechercher toutes les lettres de l'alphabet, qu'elles soient minuscules ou majuscules. Si un intervalle fonctionne avec des lettres, il fonctionne aussi avec des chiffres ! La classe [0-9] trouvera donc un chiffre allant de 0 à 9. Il est bien évidemment possible de combiner des chiffres et des lettres : [a-z0-9] trouvera une lettre minuscule ou un chiffre.


Exclure des caractères


Si au sein d'une classe on peut inclure des caractères, on peut aussi en exclure ! Pour ce faire, il suffit de faire figurer un accent circonflexe au début de la classe, juste après le premier crochet. Ainsi cette classe ignorera les voyelles : [^aeyuio]. L'exclusion d'un intervalle est possible aussi : [^b-y] qui exclura les lettres allant de b à y.


Il faut prendre en compte que la recherche n'ignore pas les caractères accentués. Ainsi, [a-z]trouvera abio… mais ne trouvera pas âï ou encore ê. S'il s'agit de trouver un caractère accentué, il faut l'indiquer explicitement : [a-zâäàéèùêëîïôöçñ]. Il n'y a

toutefois pas besoin d'écrire les variantes en majuscules si l'option i est utilisée : /[a-zâäàéèùêëîïôöçñ]/i.


Trouver un caractère quelconque


Le point permet de trouver n'importe quel caractère, à l'exception des sauts de ligne (les retours à la ligne). Ainsi, la regex suivante trouvera les mots « gras », « grès », « gris », « gros », et d'autres mots inexistants comme « grys », « grus », « grps »… Le point symbolise donc un caractère quelconque :

/gr.s/



Créé avec HelpNDoc Personal Edition: Créer des documents d'aide HTML facilement

Site à deux balles