Bonjour,

J'ai un code perl qui me recupère des lignes.

cependant je souhaiterai garder seulement ce qui se trouve en guillemets.

voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# !usr/bin/perl -w
use strict;
use warnings;
 
my $cpt = 0;
my $i = 0;
 
my $l ="";
 
my @liste =();
my @tab =([0]); # Tableau des Functions Filtre avec les propriétés
my $tab_ligne = 0; # Compteur des Functions Filtre
 
print "Debut du traitement\n\n";
 
open FICHIER, '<', "test.apt" or die("E/S : $!\n");
 
my @bloc = ();
while ( my $ligne = <FICHIER> ) {
	if (($ligne =~ /^\t*Left/) || ($ligne =~ /^\t*Top/) || ($ligne =~ /^\t*Width/) || ($ligne =~ /^\t*Height/)){
		# ne rien faire
	}
	else{
		# cherche la présence d'un bloc
		my $in_bloc = ($ligne =~ m/\"/) .. ($ligne =~ m{\w+\"}); # cherche la présence d'un bloc
		push @bloc, $ligne if $in_bloc; # Si l'on est dans un bloc, on remplit la table avec le nouvelle ligne
 
		if ($in_bloc =~ /E0/) { # Si l'on a trouvé le tag de fin, on traite le bloc, traitement du bloc
			# print "---- START IF----\n\n";
			# pop @bloc; # Supprimer la dernière ligne du dernier bloc
			push @bloc, ""; # concatene une valeur avec une valeur "rien" pour que le tableau soit rempli
 
			$tab[$tab_ligne][$i] = join "", @bloc;
			$tab[$tab_ligne][$i] =~ s/\t*//g;
			$tab[$tab_ligne][$i] =~ s/*"//g;
			# $tab[$tab_ligne][1] =~ s/\"//g;
 
			# print $tab[$tab_ligne][$i];
 
			@bloc = (); # Passer au bloc suivant
			$i++;
			$cpt++;
			# print "\n\n---- THE END IF----";
		}
	}
}
 
for ($i=0; $i<$cpt; $i++){
	print $tab[$tab_ligne][$i];
}
print $cpt;
 
close FICHIER;
print "\n";
print "\nFin du traitement";
Mon fichier en entrée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.enddata
			Visible? Yes
			Left: 4.15"
			Top: 1.885"
			Width:  3.8"
			Height: 2.073"
		"1-Fully Qualified" External References? No
		Reject "2-Multiple Window" Instances? Yes
		Enable Runtime "3-Checks Of 
		External References"? No
		Use Release 4.0 Scope Rules? No
		Edit Fields Read Only On Disable? No
	Libraries
				Visible? Yes
				Left: 4.15"
Top: 1.885"
Width:  3.8"
Height: 2.073"
	Global "4-Declarations"
		Window Defaults
			Tool Bar
				Title: F&onction
				Menu Item: &Nouveau
				Status Text: Créé un nouveau document
				Background Text: Filtre
				Display Style? Etched
				Font Name: "5-System Default"
				Font Size: "6-System Default2"
ce que j'obtiens :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
"1-Fully Qualified" External References? No
Reject "2-Multiple Window" Instances? Yes
Enable Runtime "3-Checks Of
External References"? No
Global "4-Declarations"
Font Name: "5-System Default"
Font Size: "6-System Default2"
ce que je voudrai obtenir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
1-Fully Qualified
2-Multiple Window
3-Checks Of
External References
4-Declarations
5-System Default
6-System Default2
Avez vous une idée ?
Je pense qu'il faudrait substituer mon résultat mais je ne sais pas comment, avec quelque chose comme : $tab[$tab_ligne][1] =~ s/expression regulière//g;

Merci d'avance