Regular expression that uses balancing groups
问题 I have a basic text template engine that uses a syntax like this: foo bar %IF MY_VAR some text %IF OTHER_VAR some other text %ENDIF %ENDIF bar foo I have an issue with the regular expression that I am using to parse it whereby it is not taking into account the nested IF/ENDIF blocks. The current regex I'm using is: %IF (?<Name>[\w_]+)(?<Contents>.*?)%ENDIF I have been reading up on balancing capture groups (a feature of .NET's regex library) as I understand this is the recommended way of