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

C# Discussion :

Validité syntaxique regex


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Par défaut Validité syntaxique regex
    Bonjour,

    Je cherche depuis quelques jours à vérifier la validité syntaxique d'une regex en C# mais je ne vois pas vraiment comment faire.
    J'ai une application qui laisse les développeurs renseigner une expression régulière qu'ils veulent lancer sur l'ensemble de notre parc applicatif.

    Pour des raisons de sécurité (et de cohérence), j'aurai aimé vérifier 2 choses en amont :
    - la validité syntaxique de cette regex : est-elle au moins correcte ?
    - empêcher l'insertion de code dans les regex (je ne crois pas que ça soit possible cependant, une confirmation ?)

    Est-ce au moins possible en C# ?

    Merci par avance pour vos réponses !

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par audrey891 Voir le message
    - la validité syntaxique de cette regex : est-elle au moins correcte ?
    Pas possible, à moins d'écrire ton propre parser. Le framework en a un en interne, mais les méthodes ne sont pas accessibles (de mémoire, donc à vérifier).

    Dans mes projets je regarde juste si mon pattern compile avec ce genre de code :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    bool IsRegexValid(string pattern)
    {
        try
        {
            new Regex(pattern);
            return true;
        }
        catch
        {
    		// On ne fait rien, ou on catch selon le besoin...
        }
     
        return false;
    }

    Citation Envoyé par audrey891 Voir le message
    - empêcher l'insertion de code dans les regex (je ne crois pas que ça soit possible cependant, une confirmation ?)

    Est-ce au moins possible en C# ?
    Oui c'est faisable, mais est-ce que c'est vraiment utile ? Il faudrait utiliser une regex par langage que tu souhaites détecter. Cette/ces regex permettrait de scanner la regex saisie. C'est un peu le chat qui se mort la queue

    Donc déjà il faut que tu détermines quels sont les langages que tu veux détecter, et voir sur Google si tu arrives à trouver une regex pour chacun.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Par défaut
    Merci beaucoup pour ta réponse ! Je vais effectivement faire ton test pour valider ma regex.

    Cependant, je n'ai trouvé aucune information sur l'insertion de code dans une regexp. Aurais-tu un exemple (pour du C# par exemple) que je puisse voir la tête que cela peut avoir ?

    Merci !

  4. #4
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198

Discussions similaires

  1. Regex vérifier validité
    Par bougnbie dans le forum Général Java
    Réponses: 4
    Dernier message: 04/03/2013, 12h00
  2. Réponses: 1
    Dernier message: 24/02/2011, 14h41
  3. [Regex] Verifier la validité d'un numéro de téléphone?
    Par pracede2005 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 30/07/2009, 11h35
  4. [RegEx] Validité d'une regex
    Par kh4y3m dans le forum Langage
    Réponses: 2
    Dernier message: 08/07/2009, 12h16
  5. Regex - Double quotes - Coloration syntaxique
    Par ToxiZz dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/04/2008, 01h00

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