le texte que je cherche à nettoyer tout sur une seule ligne, au milieu d'un fichier que je parcours ligne à ligne :
src="C2_Fr_OIITXD.jpg" pageID="1" width="1651" height="2335" Sender="Moi" Receiver="" Script="" Document_Location="" Category="2a" Document_Date="05/09/2013" Document_Object="Bon de livraison" Language="french" NumPage="2" Receiver_Address="une adresse avec un numero des espaces, des virgules" Receiver_Name="marie ubert" Phone="+33(0)1.22.33.44.55"
le code qui vide les champs
il fait ca avec tous les champs, j'utilise la meme logique sur chacun des champs
if ($_ =~ /(Sender=".*?")/)
{
$_=~ s/$1/Sender=""/;
}
if ($_ =~ /(Phone=".*?")/)
{
$_=~ s/$1/Phone=""/;
}
mon probleme ?
si un champs contient un + ou des () ca ne marche plus.
ex : le numero de telephone n'est pas vidé
mais j'ai essayé avec +tata ou (tata) dans un autre champs
il n'est alors pas vidé par le script.
# A tester
Posté par DonKiShoot (site web personnel) . Évalué à 0.
J'aurais testé sans le point d'interrogation qui me semble inutile mais bon mon niveau en regex est basique :-)
[^] # Re: A tester
Posté par NeoX . Évalué à 2.
sans le ? il va matcher jusqu'au 2e " apres
dans l'exemple
Script="aaaa" Langue="bbbb"
/Script="(.*)"/ va matcher
Script=" aaaa" Langue="bbbb "
alors qu'avec (.*?) il prendra
Script=" aaaa " Langue="bbbb"
[^] # Re: A tester
Posté par Framasky (site web personnel) . Évalué à 2.
Et comme ça ? Ça serait pas ce que tu cherches ? (pas besoin de if soit dit en passant)
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: A tester
Posté par fearan . Évalué à 2.
oui le problème est du à l'évaluation de variable comme regex ($1) dans s/$1//, la solution du dessus (sans les if devrait marcher.)
mais pour les regex j'ai une préférence pour les *? ou +? ?? qui sont a mon sens plus lisible (le ? derrière un *?+ ne rend non greedy )
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: A tester
Posté par NeoX . Évalué à 2.
pas mal
j'ai simplifié sur ta proposition
et j'ai testé ca marche.
merci.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 7. Dernière modification le 06 décembre 2012 à 13:59.
Ce commentaire a été supprimé par l’équipe de modération.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.