L'utilisation conjointe des expressions régulières avec le langage Java, nécessite de respecter des règles, sans lesquelles, un modèle d'expression régulière ne pourrait correctement fonctionner lors d'un processus de mise en correspondance.
Le langage Java oblige à doubler l'anti-slash dans les expressions régulières. Dans le cas contraire, il pourrait y avoir une confusion entre un caractère spécial et un méta-caractère, ou pire pourrait entraîner une erreur de compilation.
"\b" //Recherche d'un caractère backspace "\\b" //Recherche d'une limite de mots "\(" //Entraîne une erreur de compilation "\\(" //Recherche une parenthèse ouvrante "\\{" //Recherche une accolade ouvrante "\\[" //Recherche un crochet ouvrant "[a-z\-\.]" //Recherche d'une lettre de 'a' à 'z', d'un tiret ou d'un point
Les caractères de fin de ligne sont différents selon la plateforme sous-jacente. Par exemple, sous Windows XX, le terminateur de fin de ligne est composé de deux caractères (Carriage Return + Line Feed : CRLF : \r\n), sous Unix, un seul caractère fini une ligne (Line Feed : LF : \n).
Lorsque le mode UNIX_LINES est activé, alors seul les terminateurs de ligne Unix (\n) sont reconnus.
Le mode MULTILINE autorise l'emploi des méta-caractères de délimitation de lignes ^ (début de ligne) et $ (fin de ligne) sur l'ensemble du texte cible. Ainsi, toutes les lignes de ce texte pourront être précisément délimitées. Dans le cas contraire, sera trouvé par une expression régulière employant ces méta-caractères, le texte entier si le mode DOTALL est activé, sinon la recherche échoue.
Cible : Le monde quantique est totalement cahotique. Il est ainsi quasiment impossible de prévoir un comportement. Le monde régit par la gravité, est quant à lui, stable et partant totalement prévisible. Ainsi, comment trouver le lien entre ces deux mondes ? La théorie du tout pourrait répondre à cette question... //Mode MULTILINE activé Expression régulière : ^.*$ Résultat : debut=0, fin=44 groupe(0) = Le monde quantique est totalement cahotique. debut=46, fin=94 groupe(0) = Il est ainsi quasiment impossible de prévoir un debut=96, fin=109 groupe(0) = comportement. debut=111, fin=158 groupe(0) = Le monde régit par la gravité, est quant à lui, debut=160, fin=200 groupe(0) = stable et partant totalement prévisible. debut=202, fin=256 groupe(0) = Ainsi, comment trouver le lien entre ces deux mondes ? debut=258, fin=314 groupe(0) = La théorie du tout pourrait répondre à cette question... //Mode MULTILINE non activé Expression régulière : ^.*$ Résultat : aucun //Mode MULTILINE non activé et mode DOTALL activé Expression régulière : ^.*$ Résultat : debut=0, fin=314 groupe(0) = Le monde quantique ... cette question...
Le mode DOTALL détermine si le point correspond à n'importe quel caractère, y compris les terminateurs de lignes. Dans le cas contraire, le point ne pourra remplacer un saut de ligne, un retour charriot, comme on le constate dans le second exemple (Mode MULTILINE non activé) et la mise en correspondance échouera.