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!