J'ai ça :
- from_external p:NATIVE_ARRAY[CHARACTER] <-
ça me rend :
//* Syntaxe,Header : := from_external_copy <p>
J'ai écris pour cela le bête code :
#!/bin/perl
use strict;
my $res;
while (my $line = ) {
if ($line =~ /\s*-([\w\s_:,\[\]]+)<-/) {
# C'est une ligne de def de slot
$res = $1;
$res =~ s/([\w_]+)(\s*:[A-Z_\]\[]+)/<$1>/g;
print " //* Syntaxe,Header : := $res\n";
}
else {
print $line;
}
}
Je voudrai produire pour chacune des captures ([\w_]+) (de la ligne
$res =~ s/([\w_]+)(\s*:[A-Z_\]\[]+)/<$1>/g;
)une ligne du genre
// <p> : NATIVE_ARRAY[CHARACTER] <
Et qu'il me crache plusieurs lignes s'il y a plusieurs séquences.
Donc, en d'autres termes, comment, en perl, peut on récupérer, pour une regexp qui matche une capture en plusieurs endroit de la phrase, la liste des captures et boucler dessus ?
# regexp
Posté par sylvain cresto (site web personnel) . Évalué à 3.
my $a="abc def ghf";
my @resultats = ($a =~ m/([\w_]+)/g);
foreach my $element (@resultats) {
print "un element=$element\n";
# ton traitement
}
Ou plus simplement pour l'utiliser directement dans une boucle:
my $a="abc def ghf";
foreach my $element ($a=~m/([\w_]+)/g) {
print "un element=$element\n";
# ton traitement
}
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.