[Perl] récuperation de chaine
sasame
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
sasame -
sasame -
Bonjour,
Je cherche une expression reguliere qui puisse ranger dans une variable, une chaine de caractere qui se trouve entre 2 chaines.
ex :
Probleme Description:
Tout est planter(test)
Resolution.
j'ai esseyer ça:
mais ça marche pas ça ne va pas chercher a la ligne suivante.
Si quelqu'un connaissai l'astuce, ça me serai grandement utile.
Merci.
Je cherche une expression reguliere qui puisse ranger dans une variable, une chaine de caractere qui se trouve entre 2 chaines.
ex :
Probleme Description:
Tout est planter(test)
Resolution.
j'ai esseyer ça:
push @description, $1 if /Probleme Description\s+([Resolution]+)^/;
mais ça marche pas ça ne va pas chercher a la ligne suivante.
Si quelqu'un connaissai l'astuce, ça me serai grandement utile.
Merci.
A voir également:
- [Perl] récuperation de chaine
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Convertisseur récupération de texte - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
3 réponses
Je voudrai bien t'aider mais je ne comprends absoluement rien a ce que tu dis...
Dans un fichier tu as:
Probleme description:
chaine a recuperer
Resolution:
chaine a recuperer
et tu veux recuperer "chaine a recuperer"
c'est bien ca?
[code]
#!/usr/bin/perl
use strict;
my $next=0;
my $fichier="fichier.txt";
my $chaine1="probleme description";
my $chaine2="resolution";
open(FILE,"$fichier") || die "Error: $!\n";
flock(FILE, 2) || die("Can't flock file - $!\n");
chomp(@lines = <FILE>);
foreach my $line (@lines) {
if ($next==1) {
#ici tu fais ce que tu veux avec ta chaine
$next=0;
}
if ($line eq $chaine1) {
$next=1;
}
if ($line eq $chaine2) {
$next=1;
}
}
close (FILE);
exit 0;
[/code]
Dans un fichier tu as:
Probleme description:
chaine a recuperer
Resolution:
chaine a recuperer
et tu veux recuperer "chaine a recuperer"
c'est bien ca?
[code]
#!/usr/bin/perl
use strict;
my $next=0;
my $fichier="fichier.txt";
my $chaine1="probleme description";
my $chaine2="resolution";
open(FILE,"$fichier") || die "Error: $!\n";
flock(FILE, 2) || die("Can't flock file - $!\n");
chomp(@lines = <FILE>);
foreach my $line (@lines) {
if ($next==1) {
#ici tu fais ce que tu veux avec ta chaine
$next=0;
}
if ($line eq $chaine1) {
$next=1;
}
if ($line eq $chaine2) {
$next=1;
}
}
close (FILE);
exit 0;
[/code]
Merci mais je cherche plus une solution qui tienne avec une expresion reguliere.
Ce que je veux fait c'est recupérer la chaine "tout est planté" qui se trouve entre "Problem Description:" et "Resolution".
J'ai esseyer une tonne d'expression reguliere mais rien n'y fait.
Une solution serai de supprimer les retours à la ligne du fichier, ça serai plus facile après pour extraire les chiane que je souhaite
Ce que je veux fait c'est recupérer la chaine "tout est planté" qui se trouve entre "Problem Description:" et "Resolution".
J'ai esseyer une tonne d'expression reguliere mais rien n'y fait.
Une solution serai de supprimer les retours à la ligne du fichier, ça serai plus facile après pour extraire les chiane que je souhaite