2012-09-06 4 views
0

Bonjour J'ai une question sur les groupes correspondant à base de l'expression régulière suivanteRegex: en option ignorer les guillemets doubles

static string partPattern = @"^(?<Key>\w+)\s*(?<Value>.*)$"; 

des données de l'échantillon comme suit:

TEST_REPLICATE 
    { 
     REPLICATE_ID   1986 
     ASSAY_NUMBER   877 
     ASSAY_VERSION   4 
     ASSAY_STATUS   "Research" 
      } 

Je suis en mesure de récupérer correctement les valeurs et si les valeurs sont NULL, cela fonctionne correctement. Ce que j'essaye de faire est de récupérer également une valeur par exemple le dernier module qui est entre guillemets. Je ne suis pas vraiment sûr si je le fais correctement, serait-ce la regex correcte pour le scénario ci-dessus, je viens d'ajouter des citations avant w. S'il vous plaît corriger, merci

static string partPattern = @"^(?<Key>\"w+)\s*(?<Value>.*)$"; 
+0

Est-ce pas votre expression originale correspondent déjà de telles valeurs? – Qtax

+0

Vous souhaitez que les citations soient supprimées de la valeur? – BlueM

+0

@Qtax, Vous avez raison, cela fonctionne, la regex existante fonctionne aussi, je n'ai pas eu le noeud dedans, merci !!! – user721

Répondre

0

Je ne sais pas où votre problème. Cela fonctionne pour moi:

\s*(?<Key>[^\s]+)\s*(?<Value>.*) 
1

Vous regex n'est pas correct.Atleast pour l'entrée que vous avez fourni ..

Si je comprends bien votre question, c'est le regex que vous avez besoin.

^\s*(?<Key>\w+)\s*\"?(?<Value>.*?)\"?$ 

Il travaillerait avec le mode multiline ...

+1

+1 pour la valeur sans les guillemets – BlueM

Questions connexes