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))*)\])
CodePudding user response:
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' => [
text\s*
- zero or more whitespaces\K
- discards the text matched so far from the current overall match memory buffer.