Tutoriels Java

Java ACCUEIL Introduction à Java Java Démarrer Syntaxe Java Commentaires Java Variables Java Types de données Java Conversion de type Java Opérateurs Java Chaînes Java Mathématiques Java Booléens Java Java Si... Sinon Commutateur Java Java While Boucle Java pour la boucle Java Pause/Continuer Tableaux Java

Méthodes Java

Méthodes Java Paramètres de méthode Java Surcharge de méthode Java Portée Java Récursivité Java

Cours Java

POO Java Classes/Objets Java Attributs de classe Java Méthodes de classe Java Constructeurs Java Modificateurs Java Encapsulation Java Paquets Java/API Héritage Java Polymorphisme Java Classes internes Java Abstraction Java InterfaceJava Énumérations Java Entrée utilisateur Java Data Java Java ArrayList Liste liée Java Java HashMap Jeu de hachage Java Itérateur Java Classes d'encapsulation Java Exception Java Java RegEx Fils Java Java Lambda

Gestion des fichiers Java

Fichiers Java Java créer/écrire des fichiers Fichiers de lecture Java Java supprimer des fichiers

Comment Java

Additionner deux nombres

Référence Java

Mots clés Java Méthodes de chaîne Java Méthodes mathématiques Java

Exemples Java

Exemples Java Compilateur Java Exercices Java Quizz Java Certificat Java


Expressions régulières Java


Qu'est-ce qu'une expression régulière ?

Une expression régulière est une séquence de caractères qui forme un modèle de recherche. Lorsque vous recherchez des données dans un texte, vous pouvez utiliser ce modèle de recherche pour décrire ce que vous recherchez.

Une expression régulière peut être un caractère unique ou un modèle plus compliqué.

Les expressions régulières peuvent être utilisées pour effectuer tous les types d' opérations de recherche et de remplacement de texte .

Java n'a pas de classe d'expression régulière intégrée, mais nous pouvons importer le java.util.regex package pour travailler avec des expressions régulières. Le forfait comprend les cours suivants :

  • Pattern Classe - Définit un modèle (à utiliser dans une recherche)
  • Matcher Classe - Utilisé pour rechercher le motif
  • PatternSyntaxException Classe - Indique une erreur de syntaxe dans un modèle d'expression régulière

Exemple

Découvrez s'il y a des occurrences du mot "w3schools" dans une phrase :

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

Exemple expliqué

Dans cet exemple, le mot "w3schools" est recherché dans une phrase.

Tout d'abord, le motif est créé à l'aide de la Pattern.compile()méthode. Le premier paramètre indique quel modèle est recherché et le second paramètre a un indicateur pour indiquer que la recherche doit être insensible à la casse. Le deuxième paramètre est facultatif.

La matcher()méthode est utilisée pour rechercher le motif dans une chaîne. Elle renvoie un objet Matcher qui contient des informations sur la recherche qui a été effectuée.

La find()méthode renvoie vrai si le motif a été trouvé dans la chaîne et faux s'il n'a pas été trouvé.



Drapeaux

Les indicateurs dans la compile()méthode modifient la manière dont la recherche est effectuée. En voici quelques-uns :

  • Pattern.CASE_INSENSITIVE- La casse des lettres sera ignorée lors d'une recherche.
  • Pattern.LITERAL- Les caractères spéciaux du modèle n'auront aucune signification particulière et seront traités comme des caractères ordinaires lors de l'exécution d'une recherche.
  • Pattern.UNICODE_CASE- Utilisez-le avec le CASE_INSENSITIVEdrapeau pour ignorer également la casse des lettres en dehors de l'alphabet anglais

Modèles d'expressions régulières

Le premier paramètre de la Pattern.compile()méthode est le motif. Il décrit ce qui est recherché.

Les parenthèses sont utilisées pour trouver une plage de caractères :

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find one character NOT between the brackets
[0-9] Find one character from the range 0 to 9

Métacaractères

Les métacaractères sont des caractères ayant une signification particulière :

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

Quantificateurs

Les quantificateurs définissent les quantités :

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

Remarque : Si votre expression doit rechercher l'un des caractères spéciaux, vous pouvez utiliser une barre oblique inverse ( \ ) pour les échapper. En Java, les barres obliques inverses dans les chaînes doivent elles-mêmes être échappées, donc deux barres obliques inverses sont nécessaires pour échapper les caractères spéciaux. Par exemple, pour rechercher un ou plusieurs points d'interrogation, vous pouvez utiliser l'expression suivante : "\\?"