Maison  >  Article  >  Java  >  Explication détaillée des connaissances régulières Java

Explication détaillée des connaissances régulières Java

尚
avant
2019-11-29 13:11:332559parcourir

Explication détaillée des connaissances régulières Java

Signification de l'expression : (Recommandé : tutoriel vidéo Java)

1. Caractères

x caractère x . Par exemple, a représente le caractère a

\ caractère barre oblique inverse. Lors de l'écriture, écrivez-le sous la forme \\. (Remarque : étant donné que Java analyse \\ dans une expression régulière\ lors de la première analyse, puis l'analyse dans une expression régulière\ lors de la deuxième analyse, donc tous les caractères d'échappement non répertoriés dans 1.1, y compris \ dans 1.1, sont Tout avec doit être écrit deux fois)

-CASE_INSENSITIVE : les caractères correspondants sont indépendants de la casse. Par défaut, cet indicateur ne prend en compte que les caractères US ASCII.

‐UNICODE_CASE : lorsqu'il est combiné avec CASE_INSENSITIVE, utilisez la correspondance des lettres Unicode

‐MULTILINE : ^ et $ correspondent au début et à la fin d'une ligne, plutôt qu'à l'intégralité de l'entrée

‐UNIX_LINES : Lors de la correspondance entre ^ et $ en mode multiligne, traitez 'n' uniquement comme un terminateur de ligne

‐DOTALL : Lorsque cet indicateur est utilisé, le symbole . correspond à tous les caractères, y compris les terminateurs de ligne

‐CANON_EQ : Considérez l'équivalence canonique des caractères Unicode

8. Quantificateur gourmand

X , zéro ou plusieurs fois

X+ X, une ou plusieurs fois

X{n}

X{n,m} 🎜>

X* ? X, zéro ou plusieurs fois

X+ >X{n,} X, au moins n fois

X{n,m} 🎜>X?+ }+ X, exactement n fois

X{n,}+ >

La différence entre Greedy, Réticent et possessif sont : (notez qu'il n'est applicable que lorsqu'un traitement flou est effectué.)

Le quantificateur gourmand est considéré comme "gourmand" car il lit l'intégralité de l'état flou pour la première fois. . Si la première tentative de correspondance (la chaîne entière d'entrée) échoue, le comparateur reculera d'un caractère après le dernier caractère de la chaîne correspondante et réessayera, en répétant ce processus jusqu'à ce qu'une correspondance soit trouvée ou qu'il ne reste plus de caractères jusqu'à ce que vous. peut battre en retraite. Selon le quantificateur utilisé dans l'expression, la dernière chose à laquelle il essaie de correspondre est 1 ou 0 caractères.

Cependant, les quantificateurs réticents adoptent l'approche opposée : ils commencent au début de la chaîne à rechercher, puis lisent progressivement un caractère à la fois pour rechercher une correspondance. La dernière chose qu'ils essaient de faire correspondre est la totalité de la chaîne d'entrée.

Enfin, le quantificateur possessif lit toujours la totalité de la chaîne d'entrée, en essayant une (et une seule) correspondance. Contrairement au quantificateur gourmand, le possessif ne recule jamais.

11. Opérateur logique

XY X suivi de Y

X|Y X ou Y

(X) X, en tant que groupe de capture. Par exemple (abc) signifie capturer abc dans son ensemble

12. Référence arrière

n Tout nième groupe de capture correspondant

groupe de capture peut être calculé de gauche à droite. numérotés entre parenthèses ouvertes. Par exemple, dans l'expression ((A)(B(C))), il existe quatre de ces groupes :

1 ((A)(B(C)))

2 A

3 (B(C))

4 (C)

Le groupe correspondant peut être référencé par n dans l'expression, tel que (ab)341 Cela signifie ab34ab , (ab)34(cd)12 signifie ab34cdabcd.

13. Citer

Rien, mais citer les caractères suivants

Q Rien, mais citer tous les caractères jusqu'à E. La chaîne entre QE sera utilisée telle quelle (sauf pour les caractères d'échappement dans 1.1). Par exemple, ab\Q{|}\\E

peut correspondre à ab{|}\

E Rien, mais termine la référence à partir de Q

14. Construction spéciale (non -capturing )

(?:X) X, en tant que groupe non capturant

(?idmsux-idmsux) Rien, mais change le drapeau correspondant de activé à désactivé. Par exemple : l'expression (?i)abc(?-i)def À ce moment, (?i) active le commutateur insensible à la casse, abc correspond à

la description d'idmsux est la suivante :

‐i CASE_INSENSITIVE Le jeu de caractères :US-ASCII n'est pas sensible à la casse. (?i)

‐d UNIX_LINES : Activer les sauts de ligne UNIX

‐m MULTILINE : Mode multiligne (?m)

Sauts de ligne UNIX n

La ligne de conversion WINDOWS est rn(?s)

‐u UNICODE_CASE : Unicode n'est pas sensible à la casse. (?u)


‐x COMMENTAIRES : Vous pouvez utiliser des commentaires dans le motif, ignorer les espaces dans le motif et "#" jusqu'à la fin (# est suivi de commentaires). (?x) Par exemple (?x)abc#asfsdadsa peut correspondre à la chaîne abc

(?idmsux-idmsux:X) X en tant que groupe non capturant avec les indicateurs donnés on - off . Semblable à ce qui précède, l'expression ci-dessus peut être réécrite comme : (?i:abc)def, ou (?i)abc(?-i:def)

(?=X) X, passant par zéro La largeur de l’anticipation positive. Une assertion d'anticipation positive de largeur nulle continue de correspondre uniquement si la sous-expression X correspond à la droite de cette position. Par exemple, w+(?=d) signifie une lettre suivie d'un chiffre, mais ne capture pas le nombre (pas de retour en arrière)

(?!X) X, via une anticipation négative de largeur nulle. Assertion d’anticipation négative de largeur nulle. Continuez la correspondance uniquement si la sous-expression X ne correspond pas à droite de cette position. Par exemple, w+(?!d) signifie que les lettres ne sont pas suivies de chiffres et que les chiffres ne sont pas capturés.

(? (? (?>X) X, en tant que groupe indépendant non capturant (pas de retour en arrière)

(?=X) La différence entre (?> ?> >b|bc), car lorsque ce dernier correspond à b, il sort du groupe de non-capture et ne fait plus correspondre les caractères du groupe pour accélérer le processus

Pour plus de connaissances sur Java, veuillez faire attention. à la colonne

Tutoriel de base Java

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer