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
Patricia Arquetteoriginal
2024-11-29 14:43:13332parcourir

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());
}

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]);

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>() {
    ...
  };
}

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());
}

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

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:
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