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

SQL Oracle Discussion :

Pattern et REGEXP_LIKE


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2009
    Messages : 171
    Points : 172
    Points
    172
    Par défaut Pattern et REGEXP_LIKE
    Bonjour à tous,

    Voila, je bloque sur un problème d'expression régulière avec Oracle.
    Je dois m'assurer que certains champs texte de ma base ne possède pas de caractère particulier, en dehors des suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([a-zA-Z0-9\.,;:'\+\-/\(\)?\*\[\]\{\}\\`´~ ]|[!"#%&<>÷=@_$£]|[àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ])*
    Je comprends bien le pattern, cependant je n'arrive pas du tout à l'implémenter dans ma fonction REGEXP_LIKE (que je comptais utiliser, je ne sais pas si c'est la plus adaptée).

    Est-ce que quelqu'un peut m'orienter un peu et me confirmer qu'il faut bien passer par cette fonction ?

    Par exemple, si je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'asdqwe123' AS txt_test
    FROM dual
    WHERE REGEXP_LIKE ('asdqwe123;', '([a-z])*')
    J'obtiens bien le résultat, alors que je ne souhaitai que des lettres dans mon pattern non ?

    Merci pour votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    Bonjour,

    REGEXP_LIKE vérifie que la chaîne de caractères contient votre pattern, donc REGEXP_LIKE ('asdqwe123;', '([a-z])*') est vérifié, car la chaîne contient bien au moins une lettre minuscule.

    Ajoutez les symboles de début et de fin de chaîne de caractères dans votre pattern : REGEXP_LIKE ('asdqwe123;', '^([a-z])*$'), et vous obtiendrez le résultat désiré.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2009
    Messages : 171
    Points : 172
    Points
    172
    Par défaut
    Bonjour Baldrick et merci bien pour la réponse !

    J'ai déporté mon problème ne java du coup, je me rapproche du but souhaité avec la regexp suivante :
    "^([a-zA-Z0-9.,;:'+-/\\()?*{}`´~\"> ]|[!"#%&<>÷=@_$£]|[àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ])*$"

    Le seul problème que j'ai est que je n'arrive pas à ajouter les [], mais je devrait pouvoir m'en sortir...

    Encore merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Les Designs Patterns Entreprise
    Par boulon dans le forum Design Patterns
    Réponses: 4
    Dernier message: 01/09/2004, 19h16
  3. Interfaces, Pattern Observer
    Par IProg dans le forum Langage
    Réponses: 8
    Dernier message: 18/12/2003, 14h11
  4. [Design Patterns] Architecture 3 tiers
    Par HPJ dans le forum Design Patterns
    Réponses: 1
    Dernier message: 29/07/2003, 11h49
  5. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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