I am trying to match a nested content section of the config based on the alias.
I have the base prototype working for matching single aliases over here: https://regex101.com/r/1vwKsx/1 (section correctly matched to: 'template_path_stack' =>)
HOWEVER, I want to select a section (which is re-used in the file) based on the section container.
In the link above, I need to only match the section which is inside: controllers => factories.
The problem is that the regex matches both (the correct one and the one from the outside). https://regex101.com/r/IrV0SN/1
Current regex:
('factories' => )([((?>[^[]]++|(?2))*)])
Advertisement
Answer
You may add an obligatory prefix to the regex and discard the matched text using K operator:
'controllers' => [s*K('factories' => )([((?>[^][]++|(?2))*)])
See the regex demo.
Here,
'controllers' => [– a'controllers' => [texts*– zero or more whitespacesK– discards the text matched so far from the current overall match memory buffer.