PERL récupérér dans une chaine de caractere
kepiloco
-
kepiloco -
kepiloco -
Salut
je voulais savoir comment, dans une grosse chaine de caracteres, récupérer certaines infos
par exemples
blablaout1<hhh><gege>blablain1<\gege>blablaout2<hhh><gege>blablain2</gege>blablaout3
récupérer blablain1 et blablain2
je sais que je devrais a tout les coups utiliser les expressions réguliere ... mais comment
:-?
je voulais savoir comment, dans une grosse chaine de caracteres, récupérer certaines infos
par exemples
blablaout1<hhh><gege>blablain1<\gege>blablaout2<hhh><gege>blablain2</gege>blablaout3
récupérer blablain1 et blablain2
je sais que je devrais a tout les coups utiliser les expressions réguliere ... mais comment
:-?
A voir également:
- PERL récupérér dans une chaine de caractere
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Recuperer message whatsapp supprimé - Guide
- Caractere speciaux - Guide
- Comment recuperer une video sur youtube - Guide
2 réponses
Ça donnerait quelque chose comme ca il me semble:
/<gege>.[^<\/gege>]*<\/gege>/gi
Après il te suffit d'extraire les balises "<gege>" et "</gege>" des chaines qui sortiront.
/<gege>.[^<\/gege>]*<\/gege>/gi
Après il te suffit d'extraire les balises "<gege>" et "</gege>" des chaines qui sortiront.
Salut.
Je pense qu'un truc du genre :
devrait te renvoyer la liste des éléments qui sont à l'intérieur d'une balise gege.
Le (.+?) signifie "n'importe quel succession de caractère".
L'expression régulière est encadrée par des /
Le g à la fin permet de récupérer toutes les occurences si il y en a plusieurs.
En éspérant que ça t'aide un petit peu... :-)
.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
Je pense qu'un truc du genre :
($match) = ($chaine =~ /<gege>(.+?)</gege>/g);
devrait te renvoyer la liste des éléments qui sont à l'intérieur d'une balise gege.
Le (.+?) signifie "n'importe quel succession de caractère".
L'expression régulière est encadrée par des /
Le g à la fin permet de récupérer toutes les occurences si il y en a plusieurs.
En éspérant que ça t'aide un petit peu... :-)
.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
Je crois que le problème avec une expression comme celle-là est que dans le cas de son exemple (blablaout1<hhh><gege>blablain1<\gege>blablaout2<hhh><gege>blablain2</gege>blablaout3 ), cette expression va lui sortir <gege>blablain1<\gege>blablaout2<hhh><gege>blablain2</gege>, au lieu de <gege>blablain1<\gege> et gege>blablain2</gege>.
Slt tlm,
merci pour vos réponses rapide
en fait,
me donne une erreur
sinon je ne comprend pas trop, vu qu'il y a plusieurs occurences, il faudrais plutot le mettre dans un tableau non? ->
En gros, faudrais récupérer uniquement lintérieur de ce qu'il y a entre les tags <gege> et </gege>
merci pour vos réponses rapide
en fait,
($match) = ($chaine =~ /<gege>(.+?)</gege>/g);
me donne une erreur
near "/(.+?)
sinon je ne comprend pas trop, vu qu'il y a plusieurs occurences, il faudrais plutot le mettre dans un tableau non? ->
my $i; my @match=(); my $chaine=... ; (@match) = ($chaine =~ /(.+?)/g);
for ($i=0; $i < @match; $i++)
{
print $match[$i];
}
En gros, faudrais récupérer uniquement lintérieur de ce qu'il y a entre les tags <gege> et </gege>
Bien vu Taboujr !!!!
Je suis trop stupide !! :(
javais pas vu ton expression réguliere ;-)
voici ce que que jai fais
Merci a vous 2 !
Je suis trop stupide !! :(
javais pas vu ton expression réguliere ;-)
voici ce que que jai fais
my $i; my @match=(); my $chaine=... ; (@match) = ($chaine =~ /(.+?)/g); for ($i=0; $i < @match; $i++) { $match[$i]=~ s/<gege>//g; $match[$i]=~ s/<\/gege>//g; print $match[$i]."<br>"; }
Merci a vous 2 !
/<gege>.[^<]*<\/gege>/gi
Ça serait mieux ça, mais il ne faut pas qu'il y ait d'autres balises entre les balises "gege".