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

ASP.NET Discussion :

Expression régulière pour un nom


Sujet :

ASP.NET

  1. #1
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 992
    Billets dans le blog
    6
    Par défaut Expression régulière pour un nom
    Bonjour, je cherche à savoir si quelqu'un pourrait m'aider pour créer une expression regulière pour valider des noms de personnes, avec les restrictions suivantes :
    • composé de lettre majuscules ou minuscules accentuées ou non et des caractères - et ' (tiret et apostrophe).
    • ne pas commencer par un tiret ou une apostrophe


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Salut,
    Tu connais le logiciel Expresso (gratos) ?
    Il devrait t'aider à composer et vérifier ton expression régulière facilement.

  3. #3
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    pour valider que pas le commencement par tirer (-) ou apostrophe(')
    j'utilise variable booleane


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool i;
    i = s.StartsWith("-");
    pour que ta test doit etre juste il faut que le contenue de "i" est false.
    meme chose pour apostrophe

    pour majuscules ou minuscules
    mon algo est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cmaj=0;cmin=0;
     for (i = 1; i < s.Length; i++)
                {
                    if (char.IsLower(s[i]))
                            cmin++;
                    if(char.IsUpper(s[i]))
                         cmaj++;
                }
    j'espere que tu m'a compris mon idée

  4. #4
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Je partirais sur un truc du genre dans une RegularExpressionValidator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^[a-zA-Z]([-'a-zA-Z]?)*$

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 992
    Billets dans le blog
    6
    Par défaut
    Impossible, car je dois coder uniquement l'expression régulière : cette expression doit figurer dans un appel de fonction CLR depuis SQL Server.

    A +

    Citation Envoyé par genius4evers Voir le message
    pour valider que pas le commencement par tirer (-) ou apostrophe(')
    j'utilise variable booleane


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool i;
    i = s.StartsWith("-");
    pour que ta test doit etre juste il faut que le contenue de "i" est false.
    meme chose pour apostrophe

    pour majuscules ou minuscules
    mon algo est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cmaj=0;cmin=0;
     for (i = 1; i < s.Length; i++)
                {
                    if (char.IsLower(s[i]))
                            cmin++;
                    if(char.IsUpper(s[i]))
                         cmaj++;
                }
    j'espere que tu m'a compris mon idée
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 992
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Je partirais sur un truc du genre dans une RegularExpressionValidator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^[a-zA-Z]([-'a-zA-Z]?)*$
    J'ai fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$
    ça me parait pas mal !!!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    J'ai fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$
    ça me parait pas mal !!!!

    A +
    Bonjour,

    C'est pas mal en effet mais si tu ne tapes qu'une seule lettre, ça ne marche pas.

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Et c'est là que doit normalement intervenir StormiMon qui, de ce que j'ai pu voir ici, est THE boss de la regexp.

    SQLPro, essayez peut-être de lui envoyer un MP.

  9. #9
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    tu veux faire la validation du SQL server sans utilisant C#?
    je ne sais s'il faut penser au function dans la database , ou procedure ....
    TSQL

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 992
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Bonjour,

    C'est pas mal en effet mais si tu ne tapes qu'une seule lettre, ça ne marche pas.
    Un nom de personne d'une seule lettre, ça n'existe pas !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 992
    Billets dans le blog
    6
    Par défaut
    En tout cas mes tests sont intéressant.
    En passant par des expressions régulières via .net (SQL CLR), les temps de réponse sont catastrophiquement plus lent qu'avec du Transact SQL...
    Quelques exemples...
    Expression simple, validation d'un nombre dans une chaine via l'expression "\d*"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tst_lib                                                times         
    -----------------------------------------------------  ------------
    phone domain number as UDF with Transact SQL code       35.708000     
    phone domain number with as CLR UDF (Regex)            118.718000
    Expression de complexité moyenne, validation d'un nom de personne via l'expression "^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tst_lib                                            times       
    --------------------------------------------------------------
    name domain string as UDF with CLR code            331.616000  
    name domain string as UDF with Transact SQL code    40.751000
    Bref, entre 4 et 8 fois moins rapide en passante par les Regex !!!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. Expression régulière pour prénom/nom
    Par blirette dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2008, 17h43
  3. [RegEx] Simple expression régulière pour ereg_replace
    Par aurapp dans le forum Langage
    Réponses: 6
    Dernier message: 12/03/2006, 12h34
  4. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

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