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 de recherche de texte et remplacement de texte
opérations.
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 modèlePatternSyntaxException
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 « Infodewi » 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("Infodewi", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit Infodewi!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
}
}
// Outputs Match found
Essayez-le vous-même »
Exemple expliqué
Dans cet exemple, le mot « Infodewi » 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 deuxième paramètre a un indicateur pour indiquer que la recherche doit être insensible à la casse. Le deuxième paramètre est facultatif.
Le matcher()
La 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.
Le find()
La 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 drapeaux dans le compile()
change la façon 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 leCASE_INSENSITIVE
drapeau 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()
la méthode est le modèle. Il décrit ce qui est recherché.
Les parenthèses sont utilisées pour trouver une plage de caractères :
Expression | Description |
---|---|
[abc] | Trouvez un caractère parmi les options entre parenthèses |
[^abc] | Trouver un caractère NON entre parenthèses |
[0-9] | Trouver un caractère dans la plage de 0 à 9 |
Métacaractères
Les métacaractères sont des caractères ayant une signification particulière :
Métacaractère | Description |
---|---|
| | Trouvez une correspondance pour l’un des modèles séparés par | comme dans : chat|chien|poisson |
. | Trouver une seule instance de n’importe quel personnage |
^ | Trouve une correspondance comme début d’une chaîne comme dans : ^Hello |
$ | Trouve une correspondance à la fin de la chaîne comme dans : World$ |
d | Trouver un chiffre |
s | Trouver un caractère d’espacement |
b | Trouvez une correspondance au début d’un mot comme celui-ci : bWORD, ou à la fin d’un mot comme celui-ci : WORDb |
uxxxx | Trouver le caractère Unicode spécifié par le nombre hexadécimal xxxx |
Quantificateurs
Les quantificateurs définissent les quantités :
Quantificateur | Description |
---|---|
n+ | Correspond à toute chaîne contenant au moins un n |
n* | Correspond à toute chaîne contenant zéro ou plusieurs occurrences de n |
n? | Correspond à toute chaîne contenant zéro ou une occurrence de n |
n{x} | Correspond à toute chaîne contenant une séquence de X nc’est |
n{x,y} | Correspond à toute chaîne contenant une séquence de X à Y nc’est |
n{x,} | Correspond à toute chaîne contenant une séquence d’au moins X nc’est |
#Expressions #régulières #Java