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

JavaScript Discussion :

Expression régulière ardue


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut Expression régulière ardue
    Bonjour,

    Quelqu'un aurait-il l'astuce qui me permettrait de résoudre le problème suivant :

    Mon expression régulière actuelle permet de rentrer entre 2 et x fois une chaine comme celle-ci '-NUM-555' (quotes comprises) séparée par une ';'.

    Actuellement, j'ai réussi avec la règle ci-dessous à faire ce qui est affiché en dessous. Mais je suis obligé systématiquement de mettre un ';' à la fin de la chaine.

    ^(([']{1,1}[a-zA-Z0-9-.,%\s]+[']{1,1}; ){2,})$
    '-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';etc...;'-NUM-555';


    J'aimerai que l'expression valide de ne pas mettre de ';' à la fin si il se trouve que c'est la dernière chaine (comme ci-dessous).

    '-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';etc...;'-NUM-555'

    Si un spécialiste pouvait me résoudre ce problème, sans toutefois chambouler de trop mon expression d'origine ? Je le remercie d'avance.

    Cordialement

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Je ne promets rien, mais : à essayer ^^
    ^(([']{1,1}[a-zA-Z0-9-.,%\s]+[']{1,1}; ){2,})(([']{1,1}[a-zA-Z0-9-.,%\s]+[']{1,1};?))$

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    heu chamboulage mais bon ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^('-NUM-[0-9]{3}')(;'-NUM-[0-9]{3}')*$

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Aïe, désolé cela ne passe pas !

    Lorsque je test ton expression ici

    avec ces valeurs :

    '-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555'

    ou

    '-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';'-NUM-555';
    J'ai toujours des erreurs...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu chamboulage mais bon ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^('-NUM-[0-9]{3}')(;'-NUM-[0-9]{3}')*$
    Merci ! ça fonctionne très bien

    Mais cela dit et c'est bien de ma faute, m'étant mal exprimé dans mon énoncé, il faudrait en fait que les caractères situés entre les quotes soient de n'importe quelle type, alphanumérique, ponctuation (points et virgules), espace, %. Cela nécessiterait une petie adaptation je suppose ?

    J'ai essayé de modifier ton expression mais sans succès :-(

    Merci d'avance

    Cordialement

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    heu tu n'as pas du bien recopier l'expression ...

    j'ai un resultat vrai sans ; à la fin

    et un resultat faux avec ; à la fin

    je ne vois pas de quelle erreur tu parles ???

    sinon plutot que ton site en ligne utilise pluto rgeExSR pour tester tes expression ...

  7. #7
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu tu n'as pas du bien recopier l'expression ...

    j'ai un resultat vrai sans ; à la fin

    et un resultat faux avec ; à la fin

    je ne vois pas de quelle erreur tu parles ???
    ... il parle de la mienne... je le crains (simple interversion de posts)

    >>> bon, d'accord, j'ai essayé comme ça sans tester et sans l'expérience du batracien () donc voilà ^^

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu tu n'as pas du bien recopier l'expression ...

    j'ai un resultat vrai sans ; à la fin

    et un resultat faux avec ; à la fin

    je ne vois pas de quelle erreur tu parles ???

    sinon plutot que ton site en ligne utilise pluto rgeExSR pour tester tes expression ...
    En fait comme je le disais ça fonctionne très bien jusqu'au moment ou je modifie le contenu d'une des chaines contenue entre les quotes. En d'autres termes, j'aurais voulu que cette vérification puisse se faire sur des chaines contenant n'importe quoi pourvu qu'elle contiennent les caractères cités dans le post précédent.

    Au début pour mon exemple j'avais entré comme chaine de caractères '-NUM-555' mais cela aurait pu être '56%4564qs,.dqsABCR-sdqs'

    En m'inspirant de ton expression j'ai essayé ceci mais cela ne fonctionne pas ?!
    ^('[a-zA-Z0-9-,\.%\s]')(;'[a-zA-Z0-9-,\.%\s]')*$
    Tu as compris ?

    Cordialement

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Pour avoir une réponse qui convienne, il faut donner les contraintes

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut


    Mais cela dit et c'est bien de ma faute, m'étant mal exprimé dans mon énoncé, il faudrait en fait que les caractères situés entre les quotes soient de n'importe quelle type, alphanumérique, ponctuation (points et virgules), espace, %. Cela nécessiterait une petie adaptation je suppose ?
    heu si ça peut être n'importe quoi ?? pourquoi tester ????

    peux tu mettre un exemple avec en rouge ce qui peut changer ...
    y'a une longueur définie de ce qui est entre les quotes ?

    Bref la proposition de Beef semblerait la bonne

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Pour avoir une réponse qui convienne, il faut donner les contraintes

    Ha oui! effectivement ça fonctionne... MERCI ! une aussi petite expression qui résolue mon problème !!! j'en reviens pas, moi qui cherchais à faire des trucs et des machins à n'en plus finir...

    Heuuuuu, une dernière pour la route : la même chose mais sans les quotes et ne devant contenir que des numériques avec décimales ou pas, négatif (-) ou non (pas de notification + pour les valeurs positives)
    La mienne fonctionne très bien, mais je suis prêt à l'échanger contre une plus courte

    Un grand merci pour tous les autres pour votre aide et évidemment à toi

    cordialement

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    quoi que par securité ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^('.[^']+'){1}(;'.[^']+')*$

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message


    heu si ça peut être n'importe quoi ?? pourquoi tester ????
    Ce qui est vraiment obligatoire ce sont les quotes, les points virgules entre chaque chaine et l'inutilité de rajouter un point virgule à la fin si dernière chaine.
    Le contenu entre les quotes, peut être n'importe quoi ou presque... (pas de retour chariot par exemple ;-) ou des entrées d'une telle imbécilité qui ne doivent pas rentrer dans mon traitement)

    Mais bon, ton 'collègue' semble avoir résolu le problème.

    Merci quand même

    Cordialement

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    quoi que par securité ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^('.[^']+'){1}(;'.[^']+')*$
    Pour ma gouverne, qu'est-ce que cette expression apporte de plus par rapport à celle de Bovino ?

    cordialement

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Beef n'a pas tout a fiat résolu le problème ...
    voir mon post précédent...
    je ne pense pas que tu accepte les quotes entre les quotes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'kjljklj'lkjkjlj';'lkjlkjlkj'
    sinon pour les chiffres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([+-]?\d+(,\d+)?)(;[+-]?\d+(,\d+)?)*$

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Euh, non Spaffy, la mienne n'est pas sensée accepter les quotes à l'intérieur non plus
    Si elle rencontre une 2e quote elle sort du groupe capturant, le caractère suivant n'est pas correct et l'expression ne correspond pas.

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Non Beej desolé de devoir te contredire

    mais bon par securité je prefère toujours ecarter le delimiteur
    car avec tu valide cette chaine:

    'kjhjh':''';'jkhkjh'

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Beef n'a pas tout a fiat résolu le problème ...
    voir mon post précédent...
    je ne pense pas que tu accepte les quotes entre les quotes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'kjljklj'lkjkjlj';'lkjlkjlkj'
    sinon pour les chiffres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([+-]?\d+(,\d+)?)(;[+-]?\d+(,\d+)?)*$
    Effectivement ! Bien vu pour les doubles quotes...

    Et nickel pour les numériques ! Chapeau bas

    Suite à ces posts je dis MONSIEUR ! Respect !

    Et un grand merci à tout le monde.

    cordialement

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    lol àprès une longue période d'allergie aux expressions régulière, mon second prénom est désormais regExp

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Non Beej desolé de devoir te contredire
    Ah oui, merci pour cette précision Mr RegExp

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegEx] Expression régulières : Balises <SCRIPT>
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 23h25
  2. Expression réguliére
    Par Mad_Max dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/09/2003, 18h17
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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