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

Langage Perl Discussion :

Modifier une chaine


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 42
    Points
    42
    Par défaut Modifier une chaine
    Si j'ai une chaine
    $srt="mot1 mot2 mot3"
    je veux la modifier comme
    ((mot1)OR(mot2)OR(mot3))

    j'ai reussit par les codes suivant, mais un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    use strict;
     
    $str="mot1 mot2 mot3"
     
    if ( $str =~ s/\s+/)OR(/g ) {
      print "(($i))\n";
    }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $str =~ s/\s+/)OR(/g )
    j'ai obtenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mot1)OR(mot2)OR(mot3
    comment je dois modifier pour ajouter les (( ))

  2. #2
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    peut être:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $srt = "mot1 mot2 mot3";
     
    $srt =~ s/(.*)\s(.*)\s(.*)/(($1)OR($2)OR($3))/g ;
     
    print "$srt\n";

    mais tu trouveras mieux

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Pour rester général quelque soit le nombre de mots utilisés, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $srt =~ s/\s/)OR(/g;
    $srt = "(($srt))";
    -- Jasmine --

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Tu peux également spliter, maper et joiner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = "(".(join " OR ", map "($_)", split " ", $chaine).")";
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    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
     
    #!/usr/bin/perl
    use strict;
    my $str="mot1 mot2 mot3 mot4";
     
    #############################
    #1
    $str =~ s/\s+/)OR(/g;
    $str = "(($str))";
    #############################################################
    #2
    #$str = "(".(join " OR ", map "($_)", split " ", $str).")";
    #############################################################
    #3
    #$str =~ s/\s/)OR(/g;
    #$str = "(($str))";
    #############################################################
     
     
    print "$str\n";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction qui modifie une chaine de caractère
    Par condor_01 dans le forum Débuter
    Réponses: 7
    Dernier message: 05/11/2007, 18h32
  2. Réponses: 1
    Dernier message: 10/04/2007, 23h29
  3. [VB.NET] Modifier une chaine de connextion
    Par hemipsy dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/12/2006, 12h38
  4. Modifier une chaine de caractères lue dans une DB
    Par shinryu69 dans le forum Langage
    Réponses: 4
    Dernier message: 31/10/2006, 13h40
  5. Modifier une chaine de caractères ?
    Par Arkadius dans le forum Oracle
    Réponses: 2
    Dernier message: 13/04/2006, 16h21

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