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 :

comparaison de deux chaines


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut comparaison de deux chaines
    Yop

    J'essai de comparer deux chaines

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine1 = test!radd@192.168.1.12
    $chaine2 = test!*@*
    quand je les compare via ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($chaine1 =~/$chaine2/i)
    et bien ca fonctionne bien lol ...
    mais !! quand je tente de comparer deux chaines du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine1 = test!radd@192.168.1.12
    $chaine2 = *!*@*.12
    pourtant $chaine1 match bien $chaine2, je pense que le soucis vient du *!*@*.12 dans $chaine2 ? mais comment corriger ca.

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Ganondorf Voir le message
    Yop

    J'essai de comparer deux chaines

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine1 = test!radd@192.168.1.12
    $chaine2 = test!*@*
    quand je les compare via ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($chaine1 =~/$chaine2/i)
    et bien ca fonctionne bien lol ...
    Non, ça ne fonctionne pas du tout, en tout cas pas comme tu voudrais que ça fonctionne... C'est un pur hasard que ça ait matché dans ce cas précis comme le montre d'ailleurs le fait que ton second exemple ne marche pas.

    D'une part tu as oublié les guillemets, je vais assumer que tu as tout mis entre simples guillemets, sinon strict aurait sûrement protesté que "@*" n'était pas un tableau déclaré (tu travailles bien sous pragma "strict" hein ??) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $chaine1 = 'test!radd@192.168.1.12';
    my $chaine2 = 'test!*@*'
    $chaine2 signifie ceci en tant que regexp :
    test #la chaîne littérale "test'
    !* #0 ou plus caractères "!"
    @* #0 ou plus caractères "@"

    Je doute (très) fortement que ce soit ce que tu voulais... Visiblement tu confonds regexp et glob(), je te reporte à un cours d'introduction aux regexp, comme par exemple "perldoc perlrequick", "perldoc perlretut" pour de plus amples informations.

    --
    Jedaï

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Je pense que tu n'as pas bien comprit ce que je chercher à faire ou bien c'est moi qui n'est pas comprit ta réponse, je cherche juste a savoir si les chaines se correspondes, le fait qu'il y est des ! et des @ dans ma chaine vient du fait que les chaines que je recoi de mon serveur ce composent ainsi, pour moi les regexp été la solution à ca.

    juste pour être sur que nous parlons bien de la même chose je vais t'expliquer ce que je veux faire exactement.
    Le masque de connexion d'un pseudonyme quand il se connect à mon serveur est comme ceci "<pseudonyme>!<ident>@<host>" ensuite si ce pseudonyme tente de s'enregistrer je compare ce masque avec celui qui est défini dans la configuration pour qu'il puisse continuer sont identification.


    Si je me suis égarré n'hesite pas à me le dire

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Relis mon message, les regexp sont bien la solution, mais la syntaxe que tu emploies n'est pas celle des regexp de Perl (et autres langages), plutôt celle des "glob" des shells. Je pourrais t'en corriger une, mais à long terme il vaut mieux que tu l'apprennes par toi-même, ça sert énormément de toute façon.

    --
    Jedaï

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Je viens de lire le perlrequick puis n'ayant toujours pas plus avancé j'ai suivi avec perlretut et c'est pareil, pourtant j'en ai testé des regexp mais je la cale !

    je ne demande pas la solution mais plutot qu'ont m'aiguille sur comment procédé

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    $chaine2 devrait plutôt être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $chaine2 = 'test!.*@.*';
    Tu vois la différence ?

    --
    Jedaï

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

Discussions similaires

  1. Comparaison de deux chaines de caractere
    Par arnogb69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/08/2007, 21h39
  2. Comparaison de deux chaines en GTK+
    Par Arvel dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 29/03/2007, 17h26
  3. Comparaison de deux chaines
    Par sam.fet dans le forum Linux
    Réponses: 5
    Dernier message: 09/05/2006, 14h54
  4. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 14h26
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

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