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 :

Aide avec une expression régulière


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut Aide avec une expression régulière
    Salut,

    J'ai un fichier, d'une très vieille application médicale, qui contient des adresses.

    C'est un fichier text.

    Le fichier est composé ainsi.

    TITRE NOMDEFAMILLE Prenom Rue N° N°Postal LOCALITE
    Titre contient :
    M.
    Mme
    Mlle
    Enf
    oubien pas renseigné.

    Nomdefamille est toujours en majuscule et peut-etre composé ou style "D'ANTONIO"

    La première lettre de Prenom et Rue est toujours majuscule. le Numéro de rue peut-etre alpha numérique et n'est pas toujours renseigné.

    Pour la localité, je dispose d'un fichier qui contient toutes les localités (à l'époque de la conception du soft les SGBDR n'existaient pas)

    ça aurait pu être super facile pour récupérer tout ça s'il n'y avait pas d'autres cochonneries entre chaque adresse.. il y a pleins d'autre commentaires.

    Est-ce qu'il existe une âme généreuse qui pourrait me guider un peu avec les expressions régulières car je n'ai trouvé aucune autre logique d'organisation des données dans ce foutu fichier.

    A la limite, le titre je m'en fou.

    En sachant que le nom de famille et la localité sont toujours en majuscules, y aurait-il un moyen de créer une expression régulière pour lire les adresses.

    je précise que je n'ai aucune connaissance sur ces expressions regulières!

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Il peut y avoir des espaces dans le nom et le prénom ? S'il peut y en avoir des ce ne sera pas simple du tout de délimiter correctement les informations. J'espère donc qu'il y a un minimum de formatage dans le fichier à ce niveau.

    Si une information est facultative, il y a des espaces inutiles insérés ou non ?
    Le numéro de l'adresse commence forcément par un chiffre ?
    Le numéro postal c'est le code postal on est bien d'accord ? Et il est obligatoire ?

    Quelques exemples de ligne du fichier peuvent être pratiques aussi, avec tous les cas possibles.

  3. #3
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Salut,

    Merci pour ton mesage,



    Il peut y avoir des espaces dans le nom et le prénom ?
    Non, mais s'il y a c'est une 10aine au max.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si une information est facultative, il y a des espaces inutiles insérés ou non ?
    Non il n'y a pas d'espace inutiles dans ce cas là..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le numéro de l'adresse commence forcément par un chiffre ?
    Toujours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le numéro postal c'est le code postal on est bien d'accord ? Et il est obligatoire ?
    Oui tout à fait,, c'est le numéro postal et il est obligatoire . la localité toujours en majuscules.


    alors je vais tenter de mettre qqs lignes mais il s'agit de données sensibles, je vais donc les trier avant


    Merci d'avance

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    S'il n'y a pas d'espaces sur les nom/prénom ça devrait aller alors.

    Citation Envoyé par bossun Voir le message
    je vais tenter de mettre qqs lignes mais il s'agit de données sensibles, je vais donc les trier avant
    Ce qui m'intéresse surtout c'est d'avoir le formatage des lignes, avec les différents cas suivant les données facultatives (sans titre et sans numéro de rue, avec titre et numéro, sans titre et avec numéro, avec titre et sans numéro). Après tu peux remplacer les noms par DUPOND, DU-PONT, DU'RANT, ... et les prénoms/rue sur le même principe.

  5. #5
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Alors je vais poster ça mais ce soir car je n'ai pas le fichier avec moi.

    Merci encore

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    A vue de nez, quelque chose comme ça devrait permettre de faire ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (?<titre>.+\s)?(?<nom>[A-Z'\-]+)\s(?<prenom>[A-Za-z'\-]+)\s(?<num>\d\w*\s)?(?<cp>\d{5})\s(?<localite>.+)
    Après pour l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    string pattern = @"(?<titre>.+\s)?(?<nom>[A-Z'\-]+)\s(?<prenom>[A-Za-z'\-]+)\s(?<num>\d\w*\s)?(?<cp>\d{5})\s(?<localite>.+)";
    string input = "M. SUPER-DUPONT Thierry 34bis 12345 MonTrouPerdu";
     
    // A faire pour chaque ligne du fichier à traiter
    Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
    string titre = m.Groups["titre"].Value.Trim(); // Trim nécessaire pour enlever l'espace de fin si la valeur est présente
    string nom = m.Groups["nom"].Value;
    string prenom = m.Groups["prenom"].Value;
    string num = m.Groups["num"].Value.Trim(); // Trim nécessaire pour enlever l'espace de fin si la valeur est présente
    string cp = m.Groups["cp"].Value;
    string localite = m.Groups["localite"].Value;
    A mettre en application pour vérifier si cela marche correctement dans tous les cas que tu peux rencontrer.

Discussions similaires

  1. Aide pour une expression régulière avec sed
    Par Loceka dans le forum Administration système
    Réponses: 4
    Dernier message: 05/10/2011, 10h48
  2. [JMeter] Extraction avec une expression régulière
    Par LittleBean dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 04/04/2007, 18h39
  3. Problème avec une expression régulière
    Par Darkroro dans le forum Langage
    Réponses: 7
    Dernier message: 09/10/2006, 13h13
  4. Besoin d'aide pour une expression régulière
    Par planetiss dans le forum Langage
    Réponses: 5
    Dernier message: 16/02/2006, 20h04
  5. [RegEx] Aide sur une expression régulière toute simple
    Par tchoumak dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2005, 16h46

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