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 :

Expression régulière pour parser le tnsnames.oRa


Sujet :

C#

  1. #1
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 165
    Points : 3 707
    Points
    3 707
    Par défaut Expression régulière pour parser le tnsnames.oRa
    Bonsoir,

    Je suis en train d'essayer de récupérer un le host dans une entrée d'un fichier du tnsnames.oRa d'un client Oracle.

    Une entrée se trouvant de cette manière

    ORADATA01 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host.domain.com)(PORT = 1522))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = ORADATA01)
    )


    Je n'arrive pas à construire une expression régulière qui arrive à prendre à la fois le nom de l'entrée càd ORADATA01 et la partie droite de host càd host.domain.com .


    Pour l'instant, j'ai trouvé une expression qui me renvoie la liste de toutes les entrées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     string RegExPattern = @"[\n][\s]*[^\(][a-zA-Z0-9_.]+[\s]*=[\s]*\(";
    Mais après pour réussir à prendre la partie host, cela semble difficile

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Est-ce que ça t'irais?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?<EntryName>[a-z0-9]+)\s=(.|\r|\n)+HOST\s=\s(?<Host>[^\)]+)
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ORADATA01 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host.domain.com)(PORT = 1522))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = ORADATA01)
    )

  3. #3
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 165
    Points : 3 707
    Points
    3 707
    Par défaut
    Hello

    Je viens de tester et ça ne marche pas .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    tmp = Regex.Matches(System.IO.File.ReadAllText(fiTNS.FullName), RegExPattern)[iCount].Value.Trim().Substring(0, Regex.Matches(System.IO.File.ReadAllText(fiTNS.FullName), RegExPattern)[iCount].Value.Trim().IndexOf(" "));
    DBNamesCollection.Add(tmp);
    hostNameRegexPattern = @"^(?<" + tmp + @">[a-z0-9]+)\s=(.|\r|\n)+HOST\s=\s(?<Host>[^\)]+)";
    this.host.Add(Regex.Matches(System.IO.File.ReadAllText(fiTNS.FullName), hostNameRegexPattern)[iCount].Value.Trim());
    le tmp me renvoie donc bien le nom de l'entrée ORADATA01. Mais le Regex.Matches() me renvoie toujours une collection avec 0 élément.

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. Problème d'expression régulière pour parser un fichier
    Par lionelus dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 12/06/2015, 11h29
  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