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 :

cherche une fonction qui permet de faire une recherche


Sujet :

Langage Perl

  1. #1
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut cherche une fonction qui permet de faire une recherche
    Bonjour

    je pense qu'il existe une fonction sous perl à la façon s/caractères_à_chercher/mot/

    je vourdais vérifier par exemple que dans un mot il n'y aie pas un certain type de caractère et je voudrais éviter de rentrer dans des boucles while ..

    merci

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 869
    Points : 4 885
    Points
    4 885
    Par défaut
    Salut

    Euh, je voudrais comprendre : tu cherches une fonction qui puisse te chercher un motif dans un mot ? Mais Perl est suffisamment blindé pour ça. As-tu consulté notre FAQ ?

    @++

  3. #3
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    bien je voulais utiliser ce qu'on appelle les correspondances ce qui ressemble à ça
    ce que j'ai écris dans mon code c'est ceci

    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
     
     
     
    sub verif {
     
    my ($valeur) = @_;
     
    if ($valeur =~ /[a-z]/){
    print "ok";
    }else{
    print "notok";
    }
    }
     
    verif("ab!")
    le problème c'est que cela ne marche pas je reste toujours dans la réponse "ok" ..
    en fait je ne sais pas quelle est la synthaxe exacte ...

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu es sûr que tu as bien lu la FAQ ?
    Ce que tu teste là, c'est "y a-t-il une minuscule (a ou b ou ... ou z) quelque part dans ma chaîne de caractère", et je peux t'assurer que de ce point de vue ça marche parfaitement.

    --
    Jedaï

  5. #5
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    je vais y retourner et mieux lire

  6. #6
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    moi ce que je veux tester si il existe un caractère différents des caractère alphabétiques dans le mot passé en paramètre ...

  7. #7
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    bon j'ai ajouté à la fin le caractère $

    ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if($valeur =~ /[a-f]$/){
     
    ....
    }
    bien là ça passe

  8. #8
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Ben oui mais c'est faux, ça ne marche que dans ton cas tout particulier...
    Ce qu'il faut faire c'est ça :
    Le \w désigne la classe des caractères alphanumérique, l'avantage c'est que si tu utilise la bonne locale ("use locale;" au début du script), il comprendra aussi les caractères accentués. Je vérifie donc si il y a un caractère autre (le ^ au début d'une classe de caractère "[]" prend le complémentaire des caractères qui suivent) que ceux dans \w. Par contre "_" est aussi dans \w, donc je le rajoute parmis les caractères dangereux.

    --
    Jedaï

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/08/2008, 19h28
  2. Réponses: 10
    Dernier message: 26/04/2008, 14h14
  3. Réponses: 4
    Dernier message: 08/08/2007, 18h36
  4. Comment faire une fonction qui renvoi un tableau.
    Par poly128 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 02h04
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 01h13

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