Discussion: Pattern pour TRegex

  1. #1
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2007
    Messages
    2 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2007
    Messages : 2 491
    Points : 2 294
    Points
    2 294

    Par défaut Pattern pour TRegex

    Bonjour

    Je sais, c'est plutôt un problème d'expression régulière mais comme ça doit fonctionner avec le TRegex de Delphi .....

    Je cherche à parser un fichier dfm pour repérer tous les

    'TableName = 'ACTIONS'
    ou
    'TableName = 'ACTIONS.DBF'

    Je n'arrive pas à trouver la syntaxe pour rendre optionnelle l'extension.
    Ok, je pourrais faire 2 tests mais il y a sûrement une façon de l'écrire en un seul.

    Vous savez comment ??

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 447
    Points : 19 730
    Points
    19 730
    Billets dans le blog
    4

    Par défaut

    Bonjour,

    un petit Expresso (pas le café, le gui)
    et je peux te proposer
    Code RegEx : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^.*TableName\s='{1}ACTIONS.*'{1}.*$
    pas le top
    Code RegEx : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^.*TableName\s?='{1}ACTIONS.*'{1}.*$
    espace optionnel
    Code RegEx : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^.*TableName\s?=\s?'{1}ACTIONS(?:\.DBF)?'{1}.*$
    espace et groupe .DBF optionnel

    pas sur que ce soit juste juste, je suis pas un pro de l'expression régulière, mais les tests
    TableName ='ACTIONS'
    aaaaaaTableName='ACTIONS.DBF'bbbb
    TableName='TOTO' le fameux
    fonctionnent (deux premiers ok)
    comme c'est dans un dfm je dirais que
    Code final : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\s*TableName\s?=\s?'{1}ACTIONS(?:\.DBF)?'{1}\s*$
    devrait fonctionner

    NB. je ne sais pas quel balise mettre pour [CODE= ] l'affichage des proposition est donc un peu bizarre
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  3. #3
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    mars 2010
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 640
    Points : 1 507
    Points
    1 507
    Billets dans le blog
    4

    Par défaut

    Simplement avec ce regex ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^'TableName = ('ACTIONS'|'ACTIONS.DBF')$
    Sinon vu que tu vas parser le fichier, tu peux utiliser :
    Edit: grillé par Sergio

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2007
    Messages
    2 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2007
    Messages : 2 491
    Points : 2 294
    Points
    2 294

    Par défaut

    retwas :
    en fait, j'avais essayé avec ... ACTIONS[.DBF|] mais ça n'a rien donné.
    J'aurais pu prendre l'expression complète, c'est vrai.

    Sergio:
    J'ai bien utilisé Expresso comme à mon habitude, mais j'ai calé :-(
    Il me manquait le ?:


    Merci à vous deux .

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/06/2006, 15h47
  2. Patterns pour update
    Par Samish dans le forum MS SQL-Server
    Réponses: 3
    Dernier message: 15/06/2006, 14h56
  3. Les design pattern pour créer des jeux
    Par alex6891 dans le forum Design Patterns
    Réponses: 3
    Dernier message: 02/05/2006, 14h16
  4. Quel design pattern pour réaliser une synthèse
    Par jbwan dans le forum Design Patterns
    Réponses: 3
    Dernier message: 21/04/2006, 13h39
  5. Design Patterns pour l'Evolutivité ?
    Par TrollMaster dans le forum Design Patterns
    Réponses: 7
    Dernier message: 20/01/2005, 13h47

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