Bonjour,
J'ai un script qui permet de transformer fichier.xml en fichier.txt et dans le script j'ai besoin d'éliminer les points virgule arabe et les points d'interrogation, il fonctionne correctement chez ma copine mais quand je l'ai essayer sur mon pc il ne me permet pas d'enlever les point virgules et les points d'interrogation arabe!!! malgré que je suppose du version perl qui est plus récente que celle de ma copine (version 5.16.3 et ma copine 5.0)
voici le script que j'ai utilisé
Merci de m'aider
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 #Script de nettoyage de corpus : de XML TO TXT #!/usr/bin/perl use File::Spec; use strict; use utf8; my $RepBase ='D:\\Memoire Mastere\\Mon travail'; my $FicAraOut = File::Spec->catfile( $RepBase, 'Sortie.txt'); open (IN_Ara, 'D:\\Memoire Mastere\\Mon travail\\partie1.xml') or die "erreur d'ouverture."; open (OUT_Ara, '+>', $FicAraOut ) or die "Impossible ouvrir fichier $FicAraOut en sortie\n"; while(<IN_Ara>){ #Supprimer les espaces en debut et en fin de la chaine $_ =~ s/ +$//g; $_ =~ s/^\s+//; #Enlever le debut de fichier xml $_ =~ s/\<\?[a-z]+\s[a-z]+\=\"[0-9]\.[0-9]\"\s[a-z]+\=\"[A-Z]+\-[0-9]\"\?\>//g; #remplacer plusieurs ! par un seul $_ =~ s/\!+/./g; #Remplacer ! et ? par un point $_ =~ s/\?+/./g; #Enlever ; et le , $_ =~ s/[;,]//g; #supprimer point d'interrogation en arabe $_ =~ s/\x{061F}/ /g; #supprimer point virgule en arabe $_ =~ s/\x{066C}/ /g; $_ =~ s/\x{060D}/ /g; $_ =~ s/\x{060C}/ /g; #supprimer les expressions regulieres $_ =~ s/\,//g; $_ =~ s/\;//g; $_ =~ s/\*//g; $_ =~ s/\-//g; $_ =~ s/\_//g; $_ =~ s/\[//g; $_ =~ s/\]//g; $_ =~ s/\(//g; $_ =~ s/\)//g; $_ =~ s/\{//g; $_ =~ s/\}//g; $_ =~ s/\'//g; $_ =~ s/\"//g; $_ =~ s/\&//g; $_ =~ s/\|//g; $_ =~ s/\///g; $_ =~ s/\\//g; $_ =~ s/\+//g; #supprimer les deux points $_ =~ s/\://g; #remplacer plusieurs points par un seul $_ =~ s/\.+/\./g; #remplacer les points par \n $_ =~ s/\./\\n/g; #Enlever les balise xml $_ =~ s/\<[A-Z]+\>//g; $_ =~ s/\<[A-Z]+[a-z]+\>//g; $_ =~ s/\<[A-Z]+[a-z]+\>//i; $_ =~ s/\<[A-Z]+\>//i; $_ =~ s/\<[a-z]+\>//i; $_ =~ s/\<[a-z]+\>//g; #Enlever les \n $_ =~ s/\\[a-z]//g; #Supprimer toute combinaison d'espaces et tabulations $_ =~s/[ \t]+/ /g; #Remplacer plusieurs espaces par un seul $_ =~s/ +/ /g; #Supprimer les lignes vides $_ =~ s/^\s+//; print OUT_Ara $_; }
Partager