2009-09-24 4 views
4

Est-il possible d'avoir un groupe de capture nommé qui aura toujours la valeur de "BLAH" malgré que "BLAH" n'apparaisse pas dans la chaîne correspondant?dans RegEx, puis-je "coder en dur" la valeur du groupe de capture nommé

En effet, je suis à la recherche de quelque chose comme le pseudo-regex suivant ne (note la source faux = syntaxe BLA):

^(?<source=BLAH>)$ 
+0

Je ne pense pas que vous puissiez y parvenir avec des expressions régulières. –

+0

@Ahmad Mageed, de nombreuses personnes non.NET filtrent les questions marquées comme C#, d'ailleurs, cette question n'est pas vraiment C# -specific – zvolkov

+0

@zvolkov: ah, ok. J'ai mal compris que c'était spécifique à C# basé sur la mention de la syntaxe du groupe. Certes, il s'applique à regex en général. –

Répondre

3

Si je vous ai bien compris, vous vous demandez si vous pouvez avoir "source" agit comme un groupe de capture nommé qui aura toujours la valeur de "BLAH" bien que "BLAH" n'apparaisse pas dans la chaîne correspondant. Ce n'est pas possible. Le plus que vous pouvez faire est de configurer votre regex avec (? 'Source') et il sera considéré comme un groupe de capture vide qui ne correspond à rien. En utilisant le GetGroupNames method, vous pouvez voir qu'il existe, mais vous ne pourriez rien lui assigner, ce qui le rend inutilisable. Si "BLAH" est un préfixe de fichier attendu, traitez-le ailleurs dans votre code, sauf si vous avez une variété de préfixes, auquel cas vous pouvez envisager de construire dynamiquement le modèle regex pour les gérer.

Questions connexes