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 :

[Regex C#] Aide sur une regex qui recupere des controles


Sujet :

Dotnet

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [Regex C#] Aide sur une regex qui recupere des controles
    Salut à tous,

    j'ai généré une regex a l'aide du tuto est des conseils de ce forum.

    Seulement, je bloque sur la fiabilité d'une regex, qui m'empêche d'écrire un webcontrol comme je le veux.

    Je m'explique.

    Actuellement, j'ai cette regex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (<WC1:HyperLink[^>]*>)(.*?)(</WC1:HyperLink>)
    qui permet de recupérer des groupes lorsque je met des Hyperlinks suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <WC1:HyperLink ID="HL_CC1" runat="server" 
    NavigateUrl="MonLien.html" ToolTip="famille" Text="">
    	<Content>
    		<WC1:Image ID="CC1" runat="server" ImageUrl="monImage.jpg"
     
    		AlternateText="monImage" ToolTip="monImage" CssClass="VisuelMonImage" />
    	</Content>
    </WC1:HyperLink>
    Cela fonctionne trés bien, seulement, j'aimerai faire évoluer ma regex, car lorsque mon <WC1:HyperLink ne contient pas de balise <content>, on peut l'ecrire sans répéter </WC1:HyperLink>, et en mettant directement un />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <WC1:HyperLink ID="HL_CC1" runat="server" NavigateUrl="MonLien.html" ToolTip="famille" Text="" />
    Et c'est là que ça coince, car, je ne trouve pas comment modifier ma regex afin de récupérer soit ma balise "</WC1:HyperLink>", ou ma balise "/>".

    J'ai essayé ça:

    REGEX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (<WC1:HyperLink[^>]*>)(.*?)(</WC1:HyperLink>)|(/>)
    Seulement, lorsque j'écris ma balise de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <WC1:HyperLink ID="HL_CC1" runat="server" NavigateUrl="MonLien.html" ToolTip="famille" Text="">
    	<Content>
    		<WC1:Image ID="CC1" runat="server" ImageUrl="monImage.jpg"
     
    		AlternateText="monImage" ToolTip="monImage" CssClass="VisuelMonImage" />
    	</Content>
    </WC1:HyperLink>
    Il me recupere le "/>" de mon control image, et donc, ça coince!

    Par contre, si je l'écris de cette façon, ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <WC1:HyperLink ID="HL_CC1" runat="server" NavigateUrl="MonLien.html" ToolTip="famille" Text="" />
    Quelqu'un a t'il une idée sur l'écriture de ma REGEX afin de prendre en compte les deux façons d'ecrire mon Control?

    Merci beaucoup,

    david

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Points : 82
    Points
    82
    Par défaut
    salut,

    Je ne suis pas un expert C# mais en perl il y a un flag qui permet d'effectuer une recherche multi ligne

    peut etre faut-il ajouter un flag de la même manière qui permet de faire une recherche multi ligne?
    Je suppose que ça fonctionne avec des classes, il faudrait regarder du coté du constructeur, ou alors une classe spécifique qui te permettrait de gerer ça...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    ça ne vient pas du multiligne, j'ai indenté le code, mais il arrive nettoyé dans une fonction qui recherche toutes les occurrences à l'aide de REGEX.

    Clairement, la regex s'arrête sur le premier '/>' trouvé, et je ne sais pas comment gérer cet effet.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je viens de me rendre compte d'un erreur sur ma regex, c'est normal que ça soit impossible de récupérer les deux types d'ecriture, je dois partir sur ce type de regex plutot:

    (<CC1:HyperLink[^>]*>)(.*?)(</CC1:HyperLink>)|<CC1:HyperLink[^>]*/>

    Ce qui a l'air de passer pour le moment

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2002
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 104
    Points : 128
    Points
    128
    Par défaut
    bonjour,

    J'aurai bien proposé la solution suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (<WC1:HyperLink[^>]*>)(.*?)((</WC1:HyperLink>)|(/>))
    Mais si ça marche déjà ...

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

Discussions similaires

  1. aide sur une regex
    Par Jérémy Lefevre dans le forum Boost
    Réponses: 3
    Dernier message: 14/11/2014, 16h18
  2. [RegEx] Besoin d'aide sur une regex
    Par kairi084 dans le forum Langage
    Réponses: 13
    Dernier message: 13/02/2014, 11h52
  3. Besoin d'aide sur une regex
    Par El_touristo dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2010, 18h32
  4. Aide sur une Regex en C# SVP
    Par leoncapri dans le forum C#
    Réponses: 4
    Dernier message: 19/09/2010, 19h01
  5. aide sur une regex
    Par danathane dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2010, 15h36

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