Comment pouvez-vous tokeniser / tokenize / diviser une chaîne délimitée en Perl?
Question
Comment diviser une chaîne, par exemple "a: b: c: d" en jetons pour l'analyse syntaxique en Perl?
(par exemple, en utilisant split?)
Vous recherchez une réponse claire et simple avant tout (mais ajoutez ensuite des informations intéressantes).
La solution
Oui, la la scission est ce que vous souhaitez.
@tokens = split(/:/, "a:b:c:d");
foreach my $token (@tokens) {
....
}
Autres conseils
Vous pouvez utiliser la scission. Vous pouvez également l'utiliser avec une regex.
my @tokens = split(/:/,$string);
Pour une analyse plus avancée, je recommande Parse :: RecDescent
Consultez également la documentation fournie avec perl en tapant à l'invite de commande:
perldoc -f split
Pour effectuer une recherche dans la FAQ, utilisez
perldoc -q split
si vous avez:
$a = "a:b:c:d";
@b = split /:/, $a;
alors vous obtenez:
@b = ("a", "b", "c", "d")
En général, voici comment fonctionne le fractionnement:
split /PATTERN/,EXPR
Où PATTERN
peut être à peu près regex. Vous n'êtes pas limité à de simples jetons tels que ':
'