IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2015
    Messages : 12
    Points : 14
    Points
    14
    Par défaut Comment faire - le remplacement de caractères ne fonctionne pas
    Bonjour à tous,

    J'ai besoin de remplacer des chaines de caractères par d'autres et ça ne fonctionne pas.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    str = "<br>-----BEGINREQUEST-----"
     
    str.sub("<br>", "Premier Serveur")
    puts str
     
    balloon = "Sammy <br> a balloon"
    print balloon.sub("<br>","had")
    La première occurrence ne fonctionne pas, mais la deuxième oui. Même si je mets des espaces, cela ne change rien.

    N'étant pas un expert dans le domaine, est-ce que quelqu'un pourrait me dire pourquoi ça ne fonctionne pas.

    Au passage, j'ai essayé plusieurs approches à mon besoin.

    J'ai une chaîne de longueur variable du type: "<br>-----BEGIN REQUEST-----blablabla-----END REQUEST-----</br><br>-----BEGIN REQUEST-----blablabla-----END REQUEST-----</br>"

    Je voudrais soit remplacer les <br> </br> par autre chose ou extraire les données entre les deux balises sous forme de tableau pour pouvoir reconstruire la chaîne par la suite.

    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Les deux bouts de code fonctionnent. C'est juste que la méthode sub ne modifie pas l'objet mais renvoie une copie de l'objet avec la modification effectuée. Si tu veux que l'objet soit modifié, il te faut utiliser la méthode bang associé, sub!.

    Code ruby : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    a = 'code Ruby'
    b = a.sub('code', 'bijou') # a n'est pas modifié
    puts a
    puts b
     
    a = 'code Ruby'
    b = a.sub!('code', 'bijou') # a est pas modifié
    puts a
    puts b

    À noter que la méthode sub ne remplace que la première occurrence trouvée dans la chaîne.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Merci _Karnaj_ pour cette information.

    Ce qui me perturbe, c'est que le deuxième test lui fonctionne et pourtant j'affiche la même variable et elle a bien changé.

    J'ai fait le test en suivant ton approche et effectivement, ça fonctionne.

    Encore merci pour ton aide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Dans ton deuxième code tu n'affiche pas la variable ballon, mais le résultat de l'expression balloon.sub("<br>","had"), c'est-à-dire la chaîne où les remplacements ont été effectués (puisque sub renvoie la chaîne où les remplacements ont été effectués).
    Dernière modification par LittleWhite ; 08/09/2018 à 21h19.

Discussions similaires

  1. Comment faire des remplacements dans des fichiers (sed + regex)
    Par vinok972 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 04/12/2012, 12h50
  2. Comment faire pour remplacer une donnée Null par une autre.
    Par Dpedrosa dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/03/2008, 11h25
  3. Comment faire un "remplacer" dans une colonne d'une table ?
    Par arnaudperfect dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/02/2008, 12h32
  4. Réponses: 4
    Dernier message: 04/07/2006, 16h37
  5. [XSL]Comment faire ceci ?? Mon for-each n'affiche pas tout !
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 27/07/2005, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo