2009-06-26 6 views
0

Exemple de texte est la suivante - il fait partie d'un document beaucoup plus large qui est en cours d'analyse (chaque ligne a des espaces de fin avant sa fin):la difficulté à créer modèle .NET Regex pour capturer plusieurs textes en ligne

      Procedure Information      
Primary Procedure:              
LAPAROSCOPIC PARTIAL LEFT NEPHRECTOMY /ROBOTIC WITH      
INTRAOPERATIVE ULTRASOUND             
Procedure Start: 5/4/2009 9:01:00AM          
Procedure Stop: 5/4/2009 3:29:00PM          

Je souhaite extraire les données de la "procédure primaire" de cette chaîne, dans ce cas "NEPHRECTOMIE PARTIELLE GAUCHE/LAPAROSCOPIQUE AVEC ULTRASONS INTRA-OPÉRATOIRES".

L'expression suivante identifie l'emplacement principal de procédure et parvient à tirer la 1ère ligne de la valeur mais pas les deux lignes (en utilisant le drapeau multi-ligne):

^Primary Procedure:\s*([\w\S ]*\w)\s*$ 

Je ne peux pas comprendre une expression pour obtenir les deux lignes de la valeur désirée. Il est probable que cette valeur sera toujours de 1 ou 2 lignes. Et il est également probable que nous pouvons compter sur la présence de la chaîne "Procedure Start:" au début de la ligne suivante.

Répondre

0
new Regex(@"Primary Procedure:\s*(.*)\s*Procedure Start", 
    RegexOptions.Singleline).Match(str).Groups[1] 
Questions connexes