Une expression régulière est une formule qui utilise un certain modèle pour correspondre à un type de chaîne. Une expression régulière se compose de caractères ordinaires et de métacaractères. Les caractères ordinaires comprennent les lettres majuscules et minuscules et les chiffres, tandis que les métacaractères ont des significations particulières. Qu'il s'agisse de la plate-forme .Net ou de la plate-forme Java, la signification exprimée par les expressions régulières est la même. Ci-dessous, nous analysons principalement les fonctions des expressions régulières et. applications spécifiques. J’espère que l’article vous sera utile et est uniquement à titre de référence.
Depuis que jdk1.4 a lancé le package java.util.regex, il nous a fourni une bonne plate-forme d'application d'expressions régulières Java, car les expressions régulières Java sont un système très complexe.
// barre oblique inverse
/t intervalle('/u0009')
/n saut de ligne ("/u000A")
/r Entrée('/u000D')
/d est numériquement équivalent à [0-9]
/D non-numéro équivaut à [^0-9]
/s espaces [/t/n/x0B/f/r]
/S caractère autre qu'un espace [^/t/n/x0B/f/r]
/w caractères individuels [a-zA-Z_0-9]
/W caractères non séparés [^a-zA-Z_0-9]
/f caractère de saut de page
/e Évasion
/b une limite de mot
/B Une limite non-verbale
/G fin du match précédent
^ commence par une restriction
La condition ^java est limitée aux caractères commençant par Java
$ est la fin de la restriction
La condition java$ est limitée à java comme caractère de fin
. La condition restreint tout caractère unique sauf /n.
java.. la condition est limitée à deux caractères après java, sauf la nouvelle ligne
Ajouter des restrictions spécifiques "[]"
La condition [az] est limitée à un caractère compris entre a et z minuscules
La condition [AZ] est limitée à un caractère dans la plage majuscule de A à Z.
La condition [a-zA-Z] est limitée à un caractère compris entre les minuscules de a à z ou les majuscules de A à Z.
[0-9] La condition est limitée à un caractère compris entre 0 et 9 minuscules.
[0-9a-z] La condition est limitée à un caractère compris entre 0 et 9 minuscules ou entre a et z.
[0-9[az]] La condition est limitée à un caractère (intersection) compris entre 0 et 9 minuscules ou entre a et z.
Ajoutez ^ à [], puis ajoutez une autre restriction "[^]"
La condition [^az] est limitée à un caractère compris entre a et z non minuscules.
La condition [^AZ] est limitée à un caractère dans la plage non majuscule de A à Z.
[^a-zA-Z] La condition est limitée à un caractère compris entre a et z non minuscules et entre A et Z majuscules.
[^0-9] La condition est limitée à un caractère compris entre 0 et 9 non minuscules.
[^0-9a-z] La condition est limitée à un caractère compris entre 0 et 9 non minuscules ou entre a et z.
[^0-9[az]] La condition est limitée à un caractère (intersection) compris entre 0 et 9 non minuscules ou entre a et z.
Lorsque la condition de restriction est qu'un caractère spécifique apparaisse plus de 0 fois, vous pouvez utiliser "*"
J* plus de 0J
.* 0 caractère ou plus
J.* Plus de 0 caractères entre DJ et D
Lorsque la condition de restriction est qu'un caractère spécifique apparaisse plus d'une fois, vous pouvez utiliser "+"
J+ 1 ou plus J
.+ 1 ou plusieurs caractères
J.+1 ou plusieurs caractères entre DJ et D
Lorsque la restriction est qu'un caractère spécifique apparaisse 0 fois ou plus, vous pouvez utiliser "?"
JA ? J ou JA apparaît
Limiter au nombre spécifié d'occurrences consécutives du caractère "{a}"
J{2}JJ
J{3}JJJ
Il y a plus d'un caractère, et "{a,}"
J{3,} JJJ,JJJJ,JJJJJ,???(J coexiste plus de 3 fois)
Plus de caractères et moins de b caractères "{a,b}"
J{3,5} JJJ ou JJJJ ou JJJJJ
Choisissez l'un des deux "|"
J|AJ ou A
Java|Bonjour Java ou Bonjour
"()" spécifie un type de combinaison <BR>Par exemple, si j'interroge les données entre <a href></a> dans <a href="index.html/">index</a>, cela peut être écrit comme <a .*href=/".*/">(.+?)</a>
Lorsque vous utilisez la fonction Pattern.compile, vous pouvez ajouter des paramètres qui contrôlent le comportement de correspondance des expressions régulières Java :
Pattern Pattern.compile (String regex, int flag)
La plage de valeurs du drapeau est la suivante :
Pattern.CANON_EQ Une correspondance est considérée si et seulement si la "décomposition canonique" des deux caractères est exactement la même. Par exemple, après avoir utilisé cet indicateur, l'expression "a/u030A" correspondra à "?". Par défaut, « l’équivalence canonique » n’est pas prise en compte.
Modèle.CASE_INSENSITIVE(?i)
Par défaut, la correspondance insensible à la casse ne fonctionne qu'avec le jeu de caractères US-ASCII. Cet indicateur fait correspondre les expressions quelle que soit la casse. Pour effectuer une correspondance sans ambiguïté des caractères Unicode, combinez simplement UNICODE_CASE avec cet indicateur.
Modèle.COMMENTS(?x)
Dans ce mode, les caractères d'espacement dans les expressions régulières Java seront ignorés lors de la correspondance (Remarque du traducteur : il ne fait pas référence à "//s" dans l'expression, mais fait référence aux espaces, tabulations, retours chariot, etc. dans l'expression. ) . Les commentaires commencent par # et continuent jusqu'à la fin de la ligne. Le mode ligne Unix peut être activé via un indicateur intégré.
Modèle.DOTALL(?s)
Dans ce mode, l'expression '.' peut correspondre à n'importe quel caractère, y compris la fin d'une ligne. Par défaut, l'expression '.' ne correspond pas aux terminateurs de ligne.
Modèle.MULTILINE(?m)
Dans ce mode, '^' et '$' correspondent respectivement au début et à la fin d'une ligne. De plus, « ^ » correspond toujours au début de la chaîne et « $ » correspond également à la fin de la chaîne. Par défaut, ces deux expressions correspondent uniquement au début et à la fin de la chaîne.
Modèle.UNICODE_CASE(?u)
Dans ce mode, si vous activez également l'indicateur CASE_INSENSITIVE, il correspondra aux caractères Unicode sans tenir compte de la casse. Par défaut, la correspondance insensible à la casse ne fonctionne qu'avec le jeu de caractères US-ASCII.
Modèle.UNIX_LINES(?d)
Dans ce mode, seul '/n' est considéré comme un saut de ligne et est comparé à '.', '^' et '$'. En mettant de côté les concepts vagues, voici quelques cas simples d'utilisation régulière de Java :
◆Par exemple, lorsque la chaîne contient une validation