Récupérer une plage de donnée entre deux "titres" variables.

Akre66 Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
-
Bonjour,
Je cherche à récupérer sur un fichier texte, des valeurs comprises entre deux "titres".

Exemple:
Titre 1
AAAA
AAAA
Titre 2
AAAA
AA
AAAA
Titre 3
...


Donc j'ai pensé à réaliser une grep de la forme:
@sortie=grep{$_=~/$Titre[$n]/.../$Titre[$n+1]/}@entree;1




Et ça ne marche pas.
Si je rentre la valeur exacte entre des titres, ça marche.

Donc je voulais savoir s'il y avait une manière de palier ce problème ?
Ou si vous avez une autre idée.


A voir également:

1 réponse


 
Salut,

Ce que tu veux faire n'est pas très clair, mais si ce que tu veux c'est capturer dans un tableau ce qui est entre les "Titre n", y compris ce qui est après le dernier (qui n'a donc rien à la suite), tu peux faire comme cela :

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

$_ = "Titre 1                                                                                                                                                                                                      
AAAA
AAAA
Titre 2
AAAA
AA
AAAA
Titre 3
...";

my @array = /Titre \d+(.*?)(?=Titre \d+|$)/sg;

print Dumper(@array);


Cela donne un tableau à 3 éléments comme cela :

$VAR1 = '
AAAA
AAAA
';
$VAR2 = '
AAAA
AA
AAAA
';
$VAR3 = '
...';

Dal
0