Je souhaite extraire des données sur un chaîne qui contient des zones fixes et des zones variables.
La chaine (complète) peux être de la forme :
Les parties en rouge étant variables."-PC:\Chemin Fichiers\ -NLE-KING JUNIOR Pierre Jean-Marc 03.12.1970 N°Dossier XYZ:1"
Voici les patterns que j'utilise pour extraire les informations recherchées :
- Pour le chemin des fichiers : "-P(.*) -N"
- Pour le nom : "-N(.*?) [[:upper:]]{1}[[:lower:]]{1}"
- Pour le/les prénoms : "-N.*? ([[:upper:]]{1}[[:lower:]]{1}.*) \d{2}.\d{2}.\d{4} .*Dossier"
- Pour la date de naissance j'utilise : " \d{2}.\d{2}.\d{4} "
- Pour le numéro de dossier j'utilise : "Dossier .*:(\d+)"
Les éléments et contraintes de ma demande :
le nom : Il est obligatoirement en majuscule. Par contre il peut être composé ou contenir plusieurs éléments (comme dans l'exemple).
Pour cette extraction, je me suis basé sur le premier élément fixe "-N" puis sur la première partie du prénom (Une majuscule + une minuscule), mais si le prénom est vide, patatras cela ne fonctionne plus.
Du coup, je souhaiterais faire en sorte que si le prénom est vide, on se base sur la date de naissance et si celle-ci n'existe pas non plus on utilise la dernière balise fixe qui est "N°Dossier :".
Pour résumer, je souhaite :
Code : Tout sélectionner
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR Pierre Jean-Marc 31.07.1967 N°Dossier XYZ:1 => "LE-KING JUNIOR"
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR 31.07.1967 N°Dossier XYZ:1 => "LE-KING JUNIOR"
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR Pierre Jean-Marc N°Dossier XYZ:1 => "LE-KING JUNIOR"
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR N°Dossier XYZ:1 => "LE-KING JUNIOR"
Pour cette extraction, c'est plus ou moins la même chose que pour le nom, sauf qu'il n'y a que la partie date de naissance à gérer, puisqu'il y aura obligatoirement le nom !
Pour résumer, je souhaite :
Code : Tout sélectionner
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR Pierre Jean-Marc 31.07.1967 N°Dossier XYZ:1 => "Pierre Jean-Marc"
-PC:\Chemin Fichiers\ -NLE-KING JUNIOR Pierre Jean-Marc N°Dossier XYZ:1 => "Pierre Jean-Marc"
Je ne souhaite pas particulièrement réaliser l'extraction de toutes les données en une seule fois, car cette extraction n'est pas réalisée de manière rapprochée, donc pas la peine de vous creuser la tête pour une quelconque optimisation. ^^
Merci d'avance à la personne qui pourra m'aider.
