Dans l'exemple suivant, je voudrais récupérer le texte entre pMAINp et le premier pMDSp. Le regex a un look-derrière et un look-ahead:Lazy Regex Match in .NET. Quel est le problème ici?
string contents = "pMAINp MAP B FlightTest Load pMDSp ZutiCarrier pWingp some pMDSp more pWingp end";
string blockMainRegex = @"(?<=pMAINp)[\s\w+]+(?=(pMDS)?)";
Le résultat que j'espérais était: "CARTE B FlightTest Load"
mais ce qu'il revient est: « CARTE B FlightTest Charger pMDSp ZutiCarrier pWingp certains pMDSp plus pWingp end "
Vous remarquerez que j'essaye une correspondance paresseuse ici: (pMDS)? ce qui ne marche clairement pas! Toute aide à ce sujet serait grandement appréciée. Merci. :-)
EDIT: Oups, le texte recherché a été corrigé.
Cela fonctionne très bien:
chaîne blockMainRegex = @ "(? < = pMAINp)? [\ S \ w +] + (? = PMD)";
+1 - Juste la question dont j'avais besoin de répondre. – Brett