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

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

Nov 29, 2019 pm 01:11 PM
java

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

See all articles