Вложенный PCRE Regex Issue
У меня есть собственный шаблонизатор.
Это поймать это:
@function(argument1 argument2 ...)
@get(param:name)
@get(param:@get(sub:name))
И это :
@function(argument1 argument2 ...)
Some stuff @with(nested:tag)
@foreach(arguments as value)
More stuff : @get(value)
@/foreach
@function(other:args)
Same function name (nested)
@/function
@/function
С этим шаблоном (PCRE / PHP):
#
@ ([\w]+) \(
( (?: [^@\)] | (?R) )+ )
\)
(?:
( (?> (?-2) ) )
@/\\1
)?
#xms
Это регулярное выражение ловит почти все результаты. Но когда у меня есть больше вложенных (или нет) тегов, то это ничего не ловит.Напримеркогда я делаю 2 вложенных@foreach(var:name) ... @/foreach
тогда регулярное выражение не будет выполнено в зависимости от содержимого тегаspaces
.