[Perl] récuperation de chaine

Fermé
sasame Messages postés 2 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 14 février 2006 - 21 janv. 2005 à 12:08
 sasame - 24 janv. 2005 à 14:50
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:


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.

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]
0
aah domage pour la balise
 ... :*(
0
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
0