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 :

Besoin d'aide sur une Regex 2 [RegExp]


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    WebAnalyste
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : WebAnalyste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Besoin d'aide sur une Regex 2
    Bonjour à tous,

    Je me permets de consulter le forum car je bloque sur une regex.
    J'ai besoin d'utiliser une regex qui se traduit de la façon suivante :
    Récupère tous les éléments qui ne se terminent pas par "_ld".

    J'ai construit la regex suivante : (.*)[^(_ld)$]

    Cependant je n'ai pas l'impression que celle-ci fonctionne lorsque je la teste. Si quelqu'un peu m'aider ce serait vraiment mais alors vraiment très sympas!!!

    En vous remerciant par avance de votre aide!!

  2. #2
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    tu es dans une classe d'exclusion ...
    elle represente une espace de la chaine ...
    et elle prend en compte les caractères de façon litérale ... donc le parenthèses

    le souci est que js ne prend pas en compte les lookaround en regexp.

    la question subsidiaire est :
    Quand tu dis
    qui ne se terminent pas par
    tu veux dire ligne ? ou mot ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Candidat au Club
    Homme Profil pro
    WebAnalyste
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : WebAnalyste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    En gros je bosse sur GoogleAnalytics.

    J'ai besoin de filtrer mes campagnes.

    Dans mon url j'ai des paramètres UTM. Dont un campaign = loremipsum_lorem_lorem_ld

    J'ai besoin d'exclure toutes les urls de campagne qui se terminent par _ld.

    Je ne sais pas si je réponds à ta question... en tout cas merci pour ton aide .

    Cordialement

  4. #4
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    a priori je dirais que tu ne peux pas faire une classe d'exclusion pour un groupe associé de positions.
    pourquoi ne pas faire un match pour teste si la chaine finit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    !"loremipsum_lorem_lorem_ld".match(/_ld$/) => false 
    !"loremipsum_lorem_lorem_ld".match(/_ld$/) => true
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Points : 509
    Points
    509
    Par défaut
    essaye ceci peut-être:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    /(.*(?:^_ld))$/.exec(variable);

    oups raté...
    sinon y a bien /[^_][^l][^d]$/.test(variable1); pour inverser le retour booléen mais je ne vois pas l'intérêt.
    0x4F

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    le souci est que js ne prend pas en compte les lookaround en regexp.
    Javascript dispose du lookahead (?=...), (?!...) mais pas du lookbehind (?<=...), (?<!...).

    sinon y a bien /[^_][^l][^d]$/.test(variable1); pour inverser le retour booléen
    [^_][^l][^d]$ n'est pas la négation de _ld$ par exemple la chaîne bcd n'appartient à aucun des deux ensembles.
    La négation de _ld$ peut se formuler de cette manière (avec la méthode test) ^[^]{0,2}$|[^_][^]{2}$|_[^l][^]$|_l[^d]$
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  7. #7
    Membre confirmé Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Points : 509
    Points
    509
    Par défaut
    Super fort, CosmoKnacki

    merci! j'en apprends pour le coup!

    négation de rien, fallait y penser!

    sinon autre piste:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    (variable.substr(-3)!=="_ld") && doSomething(variable);
    0x4F

  8. #8
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Négation de rien [^], je n'y ai pas pensé personnellement, c'est une particularité de Javascript (en remplacement de [\s\S]) pour représenter tous les caractères y compris un nouvelle ligne. Cette notation n'existe qu'en Javascript, toutes les autres syntaxes de regex ne l'ont pas et le verraient comme une erreur de syntaxe (une classe de caractère non fermée pour PCRE (PHP, R, Boost) par exemple, car en première position ou après le ^ pour la négation, le crochet fermant est vu comme un caractère littérale et non comme la fin de la classe de caractère).
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  9. #9
    Membre confirmé Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Points : 509
    Points
    509
    Par défaut
    Ok, merci pour le supplément d'info, au sens propre comme au figuré!
    0x4F

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

Discussions similaires

  1. [RegEx] Besoin d'aide sur une regex
    Par kairi084 dans le forum Langage
    Réponses: 13
    Dernier message: 13/02/2014, 11h52
  2. Besoin d'aide sur une regex
    Par El_touristo dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2010, 18h32
  3. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  5. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29

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