Hi,
I'm looking for a pattern to parse the following subject:
blabla(cond1)?{ abc}:{def}blabl a(cond2)?{qwe(c ond3)?{poi}:{io p}}
Probably I can't do that by executing a regexp _once_, so I need some
kind of recursive call to get those two lists (e.g. in an array):
array(
0 => array("cond1"," abc","def"),
1 => array("cond2"," qwe(cond3)?{poi }:{iop}","")
)
and for the second one then I need the array:
array(
0 => array("cond3"," poi","iop")
)
Or in words: In a configuration file I have _nested_ conditional blocks
in the format (condition)?{co ntent_when_true }:{content_when _false}
while the false content ist optional.
I built the following pattern, but thats just a bad guess:
/\(([a-zA-Z0-9_ &|]+)\)\?\{(.*)\}( \:\{(.*)\})?/
It matches both blocks when it's greedy and ignores the nested block
when it's ungreedy.
If you have any completly different solution I'll be glad to hear it,
too. :)
Best regards,
André
I'm looking for a pattern to parse the following subject:
blabla(cond1)?{ abc}:{def}blabl a(cond2)?{qwe(c ond3)?{poi}:{io p}}
Probably I can't do that by executing a regexp _once_, so I need some
kind of recursive call to get those two lists (e.g. in an array):
array(
0 => array("cond1"," abc","def"),
1 => array("cond2"," qwe(cond3)?{poi }:{iop}","")
)
and for the second one then I need the array:
array(
0 => array("cond3"," poi","iop")
)
Or in words: In a configuration file I have _nested_ conditional blocks
in the format (condition)?{co ntent_when_true }:{content_when _false}
while the false content ist optional.
I built the following pattern, but thats just a bad guess:
/\(([a-zA-Z0-9_ &|]+)\)\?\{(.*)\}( \:\{(.*)\})?/
It matches both blocks when it's greedy and ignores the nested block
when it's ungreedy.
If you have any completly different solution I'll be glad to hear it,
too. :)
Best regards,
André
Comment