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

  1. #1
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 562
    Points : 30 883
    Points
    30 883

    Par défaut Transformer un regex en like SQL

    Bonjour,

    j'ai une combinaison un peu complexe pour moi à adapter en SQL pour de m'affranchir d'une dll.

    Sauriez vous me dire comment je peux transformer ce regex en SQL Server svp ?

    ^([0-9]+)(ER|ERE|E|È|EME|RE|re|ème|e|er|ère){1}[ -]*(.*)$
    Le code d'origine en vb.net étant le suivant :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Return Regex.IsMatch(a, "^([0-9]+)(ER|ERE|E|È|EME|RE|re|ème|e|er|ère){1}[ -]*(.*)$", RegexOptions.IgnoreCase)

    je bute sur la bonne approche pour le + et les |.

    Merci pour vos idées
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #2
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 133
    Points : 196
    Points
    196

    Par défaut

    Bonjour bonjour

    Il est peut-être trop tard mais voila un début d'exemple si besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DECLARE @test TABLE ( rankT VARCHAR(255) )
     
    INSERT  INTO @test
    VALUES  ( '1ER' ),
            ( '1ERE' ),
            ( '1AZFE' ),
    		('2EME'),
    		('3EME'),
    		('4ef'),
    		('EME')
     
    -- SELECT 'invalid.com'
    SELECT * FROM @test WHERE rankT LIKE '[0-9][ER|ERE|E|È|EME|RE|re|ème|e|er|ère]%';
    Je dois avouer ne pas trop saisir la suite de votre regex n'ayant pas l'habitude d'en faire

    Bisous bisous

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 562
    Points : 30 883
    Points
    30 883

    Par défaut

    Salut,

    c'est effectivement un début, l'idée étant de pouvoir déterminer si on a par exemple
    1ère rue
    1998ème rang
    33e avenue

    etc.

    Donc un nombre suivi d'un suffixe de dénombrement, un espace et autre chose après...

    Merci
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 133
    Points : 196
    Points
    196

    Par défaut

    Alors juste rajouter ce petit bout de code j'imagine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM @test WHERE rankT LIKE '[0-9][ER|ERE|E|È|EME|RE|re|ème|e|er|ère]% %_%';

  5. #5
    Expert confirmé Avatar de 7gyY9w1ZY6ySRgPeaefZ
    Homme Profil pro
    dba
    Inscrit en
    juillet 2007
    Messages
    4 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : juillet 2007
    Messages : 4 691
    Points : 5 442
    Points
    5 442

    Par défaut

    Bon courage avec des adresses genre « 3564 18th avenue »

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 562
    Points : 30 883
    Points
    30 883

    Par défaut

    Salut 7gyY9w1ZY6ySRgPeaefZ

    dans mon cas, c'est seulement le nom de la rue que je cherche à analyser, le numero civique est dans un autre champ
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 5 243
    Points : 10 857
    Points
    10 857

    Par défaut

    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    j'ai une combinaison un peu complexe pour moi à adapter en SQL pour de m'affranchir d'une dll.
    Est-ce qu'on parle d'une fonction CLR ? Car si c'est le cas, ça semble pourtant la solution optimale pour ce type de problématique.

    Quel est le but de s'en affranchir ?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 562
    Points : 30 883
    Points
    30 883

    Par défaut

    Salut,

    c'est que j'ai réussi à transformer toute une autre palanquée de code en SQL, et qu'il ne me reste plus que cette fonction qui me pose soucis
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 133
    Points : 196
    Points
    196

    Par défaut

    Bonjour bonjour,

    Question bête mais, j'ai renvoyé un select qui devrait correspondre à vos besoin. Est-ce le cas ? Si non, sauriez vous me dire pourquoi ?

    Bisous bisous

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 5 243
    Points : 10 857
    Points
    10 857

    Par défaut

    @JeanYvette, le SELECT ne correspond pas exactement...

    Il renvoie la ligne '4ef', ce qui n'est as priori pas désiré mais surtout ne renverra pas les lignes avec des nombre a plusieurs chiffres, par exemple "38éme ..."


    Pour avoir un réel équivalent à l'expression rationnelle, il faudra je pense obligatoirement passer par une série de LIKE pour couvrir tous les cas, voire même d'autres vérification à base de CHARINDEX ou autre, bref, une série de filtres assez complexe, et au final probablement peu efficace.

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 562
    Points : 30 883
    Points
    30 883

    Par défaut

    Salut,

    c'était ma conclusion pour l'instant, donc ca me conforte dans l'idée que garder la dll fera l'affaire.

    Je laisse le bug ouvert jusqu'à vendredi, pour d'éventuelles autres suggestions

    Merci à tous
    JP
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/05/2009, 15h44
  2. transformation de String to java.sql.date
    Par opensource dans le forum Langage
    Réponses: 7
    Dernier message: 07/03/2008, 17h23
  3. transformer un xls en table sql
    Par 0coco0 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/02/2008, 17h58
  4. Réponses: 3
    Dernier message: 02/08/2007, 23h41
  5. [XPath] équivalent clause LIKE sql
    Par mapmip dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 04/01/2007, 10h44

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