独自の PHP コードを使用して、テンプレート ファイルを HTML コードとしてレンダリングしています。再帰タグを正しく解析するには、正規表現が必要です。この例では、許可タグです。
例: テンプレート コード:
<if condition="is_admin">
Show this
<if condition="can_do_this">
Show this
</if>
<if condition="can_do_that">
Show that
</if>
</if>
各「if」タグ内のコンテンツを正しくキャプチャしたいのですが、もちろん、ネストされたタグの問題はありません。
CSSで完全に機能する正規表現を見ました:
/{(?:[^{}]+|(?R))*}/sg
ただし、自分のフォーマットに変更しても機能しません。私は次のように変更しました:
/<if condition="(.[^"]*)">(?:(?!<if condition=".[^>]*">|<\/if>)|(?R))*<\/if>/sg
動作させるには何を変更すればよいですか?
ありがとうございました。