Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1461 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Replace sans modification de la chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Replace sans modification de la chaine

n°1564168
anapajari
s/travail/glanding on hfr/gs;
Posté le 23-05-2007 à 17:33:18  profilanswer
 

Petite question alakon et qui n'a d'intérêt que ma culture personnelle:
Est-il possible en perl de faire un replace dans une chaine de caractères sans modifier la-dite chaine?
 
Exemple: j'ai deux variables ($a='toto', $b='tata' ) et je veux mettre dans un troisieme variable ($c) la concatenation de $a et du remplacement de tous les 't' de $b en 'p', tout ça s'en modifier $b et en une seule ligne.
 
J'ai bien trouvé une façon, mais je trouve ça un goret:

Code :
  1. my $a='toto';
  2. my $b='tata';
  3. my $c = $a.(($_=$b)=~s/t/p/g?$_:$_);


et ce qui revient de toute façon à créer une recopie de b.
 
Y'a-t-il un moyen "plus propre"...

mood
Publicité
Posté le 23-05-2007 à 17:33:18  profilanswer
 

n°1564403
Aricoh
gentil mais fo po pousser
Posté le 24-05-2007 à 09:33:30  profilanswer
 

Code :
  1. my $a='toto';
  2. my $b='tata';
  3. my $c = $b;
  4. $c =~ s/t/p/g;
  5. $c = "$a$c";


 
Et en une ligne :
 

Code :
  1. $c =~ s/t/p/g; $c = "$a$c";


 
 :D

n°1564409
anapajari
s/travail/glanding on hfr/gs;
Posté le 24-05-2007 à 09:47:47  profilanswer
 

oui mais nan c'est triché ;)

n°1564414
Aricoh
gentil mais fo po pousser
Posté le 24-05-2007 à 09:52:56  profilanswer
 

anapajari a écrit :

oui mais nan c'est triché ;)


 
et vu que tricher n'est pas jouer, alors je ne joue plus  :D  
 
heu, sinon, intérêt de faire un truc sacom en une seule ligne ?  :heink:

n°1564417
anapajari
s/travail/glanding on hfr/gs;
Posté le 24-05-2007 à 09:58:42  profilanswer
 

absolument aucun, je le dis au debut de mon post :o
 
Mais je reste quand même surpris qu'il n'y ait pas en perl de fonction qui renvoie le resultat des modifications sur une chaine sans que la chaine originelle soit modifiée ( genre str_replace en php, replace en java, tr en ruby ...)

n°1564420
Aricoh
gentil mais fo po pousser
Posté le 24-05-2007 à 10:01:22  profilanswer
 

anapajari a écrit :

absolument aucun, je le dis au debut de mon post :o
 
Mais je reste quand même surpris qu'il n'y ait pas en perl de fonction qui renvoie le resultat des modifications sur une chaine sans que la chaine originelle soit modifiée ( genre str_replace en php, replace en java, tr en ruby ...)


Ceci dit, tu peux toujours faire ta propre fonction pour faire le taf.
 
Et ce sera toujours en une seule ligne, heu, si tu comptes pas les lignes de ta fonction  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Replace sans modification de la chaine

 

Sujets relatifs
Chercher une chaîne de caractères dans une liste[vba] problème Replace / concaténation
Convertir une chaine en déclaration de variable[RESOLU] chaine caractère en parametre de fonction / Javascript
Tester le nombre de lettre d'une chaine de caractéresmodification de base de données ISAM
modification d'un type de champ a partir d'une application..?Conversion d'une chaine de caracteres
[ASP .NET] Modification Champs + GridViewRemplacement de chaine de caractère
Plus de sujets relatifs à : Replace sans modification de la chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR