Remplacer lettres ou chiffres

Résolu
jeekee Messages postés 12 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 18 juin 2009 - 19 déc. 2007 à 01:31
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 - 19 déc. 2007 à 17:19
bonsoir, j'ai un autre petit souci, tout comme "simoi", je cherche a replacé des etoiles a la place de mon texte, mais en gardant la premiere et dernière lettre, je me suis inspiré de ce bout de code sans pouvoir toutefois, y arriver:

message de simoi:

voila je cherche la formule (comment l'écrire)
pour remplacer chaque lettres ou chaque chiffre d'un mot ou d'une phrase par un signe
ex: le vendredi 13
le remplacer par
** ******** **
sachant que cette phrase est tirée au hasard d'un fichier text
merci d'avance



et la reponse etait de pada :

alias replace_with_stars {
var %x, %y = $regsub($1-,/\S/g,*,%x)
return %x
}

Utilisation / vérification :
//echo : $replace_with_stars(le vendredi 13)


>> j ai essayer avec des tokens mais je dois mal m y prendre...

6 réponses

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
19 déc. 2007 à 05:57
alias p* {
  var %r = $iif($isid,return,echo -a)
  ; recuperation du premier caractere de la chaine. /help $left
  var %f = $left($1,1)

  ; recuperation de tous les caracteres sauf le premier et le dernier. /help $mid
  var %m = $mid($1-,2,$calc($len($1-) -2))

  ; recuperation du dernier caractere. /help $right
  var %l = $right($1-,1)

  ; /help $+
  %r $+(%f,$regsubex(%m,/\S/g,*),%l)
}

Utilisation:
(1) en tant que commande > /p* <chaine>
(2) en tant qu'identifieur > $p*(<chaine>)

Cordialement
3
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
19 déc. 2007 à 07:02
@TropNul: quitte à faire une regex autant tout faire en une fois ;-)
@jeekee: tu devrais regarder du côté des tutos sur www.scriptsdb.org, tout en bas, "Les expressions régulières", si tu as souvent ce genre de pb
3
jeekee Messages postés 12 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 18 juin 2009
19 déc. 2007 à 12:00
merci trop nul & Pada,

j ai reussi en contournent le probleme, en faite, je voulais la reponse, avec la premiere lettre et la derniere en moins et toutes les autres avec des etoiles.

ça donne donc (et ça marche):


/corps_indice {

var %x, %y = $regsub($1-,/\S/g,*,%x )

var %m = $mid(%x,2,$calc($len($1-) -2))
return %m
}



;et puis pour le replacer avec


$corps_indice(%reponse)


encore merci a vous et trs bonne continuation ;)
3
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
19 déc. 2007 à 17:02
Bon bah voila. Je ne sais pas si le pattern est le meilleur, mais ca fonctionne. :)

alias p*2 { $iif($isid,return,echo -a) $regsubex($1-,/(?<!^)\S(?!$)/g,*) }

Utilisation:
(1) en tant que commande > /p*2 <chaine>
(2) en tant qu'identifieur > $p*2(<chaine>)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
19 déc. 2007 à 16:55
@PaDa

En fait, j'ai d'abord essaye de le faire avec un regexp mais n'y arrivant pas aisement, j'ai prefere le faire ainsi.
Je commence a me rouiller depuis que je n'ai plus assez de temps a consacrer au coding ... (on ne se moque pas! lol). Bref, si jamais je trouve une solution avec un seul regexp, je posterais.

Rhaa! Je vais voir ca de suite tiens. A dans quelques minutes ...

;)
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
19 déc. 2007 à 17:19
Héhé bien joué ;-)
0
Rejoignez-nous