Maison > Java > javaDidacticiel > Comment puis-je créer un tableau de chaînes à partir de correspondances Regex en Java ?

Comment puis-je créer un tableau de chaînes à partir de correspondances Regex en Java ?

Patricia Arquette
Libérer: 2024-11-29 14:43:13
original
331 Les gens l'ont consulté

How Can I Create an Array of Strings from Regex Matches in Java?

Création de tableaux à partir de correspondances Regex

En Java, les correspondances regex sont généralement vérifiées sous forme de valeurs booléennes, indiquant si un modèle correspond à une chaîne. Cependant, il est possible d'extraire les chaînes correspondantes d'une expression régulière dans un tableau.

Pour y parvenir, vous pouvez utiliser un Matcher :

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

...

List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("your regular expression here").matcher(yourStringHere);
while (m.find()) {
    allMatches.add(m.group());
}
Copier après la connexion

Le code ci-dessus utilise un Pattern pour créez une instance Matcher, qui est ensuite utilisée pour identifier les correspondances de manière itérative. Chaque correspondance est ajoutée à une liste et vous pouvez convertir la liste en tableau en utilisant :

allMatches.toArray(new String[0]);
Copier après la connexion

Vous pouvez également créer un itérateur personnalisé pour permettre une itération paresseuse sur les correspondances :

public static Iterable<MatchResult> allMatches(
      final Pattern p, final CharSequence input) {
  return new Iterable<MatchResult>() {
    ...
  };
}
Copier après la connexion

Avec cet itérateur, vous pouvez parcourir les correspondances sans avoir besoin de trouver immédiatement toutes les correspondances possibles.

Comme démontré dans le code extrait :

for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) {
  System.out.println(match.group() + " at " + match.start());
}
Copier après la connexion

Cela affichera :

a at 0
b at 1
a at 3
c at 4
a at 5
a at 7
b at 8
a at 10
Copier après la connexion

Démontrant comment les correspondances peuvent être consultées de manière itérative à l'aide de l'implémentation MatchResult.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal