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

Dotnet Discussion :

Une autre expression régulière


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Par défaut Une autre expression régulière
    Bonjour,
    Je cherche à faire une expression régulière qui détecte les chaines :
    • qui commencent par <Run
    • et qui finissent par le > plus proche,
    • mais qui ne contiennent ni le mot Foreground ni le mot Background.


    Je bloque sur l'exclusion des mots Foreground et Background.

    Merci de votre aide.

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut

    Les negative lookahead peuvent répondre à ton besoin. Un exemple : \<Run(?![^>]*Foreground)(?![^>]*Background).*?\> :

    • l'ensemble \<Run.*?\> que je t'avais expliqué ailleurs avec le non greedy ;
    • les negative lookahead :
      • (?![^>]*Foreground) qui signifie "il n'existe pas de caractère sauf '>' ([^>]*) suivi de "Foreground". Ici j'ai mis [^>]* plutôt que .* parce que "aaa<Run Dummy> Background>bbb" n'est pas validé avec .* alors qu'il l'est avec [^>]* (à l'heure où j'écris, je n'ai pas pris le temps de comprendre pourquoi - peut-être une question d'ordre d'interprétation entre le non greedy et le negative lookahead) ;
      • Idem pour background.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Par défaut
    Merci je les ai essayé toute l'après midi hier sans y arriver. Je test tes patterns demain.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Par défaut
    Vraiment merci.
    Ca marche. Je pense que j'avais essayé la même chose qui ne marchait pas à cause du .* et je n'ai vraiment pas assez de recule pour le soupçonner.

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

Discussions similaires

  1. Couper une chaine expression régulière
    Par stratocasters dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 28/06/2012, 17h08
  2. Une petite expression régulière, pour garder la forme
    Par guidav dans le forum Général VBA
    Réponses: 1
    Dernier message: 13/03/2012, 15h55
  3. Réponses: 2
    Dernier message: 16/07/2011, 10h14
  4. [RegEx] Une seule expression régulière trouvée
    Par Mister Nono dans le forum Langage
    Réponses: 11
    Dernier message: 28/12/2009, 16h15
  5. nettoyer une chaine & Expression régulière
    Par jumbay dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/10/2008, 09h18

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