Reguláris kifejezés tagadás
LI -ek között lévő tartalmat szeretném megtalálni és kicserélni (preg_replace_callback-el) pl.
'/\<li\>(.*?)\<\/li\>/s'
de csak abban az esetben ha a listán belül nincs újabb lista (tehát nem tartalmaz <li> -t,
nem találtam olyan megoldást amivel azt tudom mondani, csak akkor cseréljen ha nem tartalmaz <li> -t
■ '/\<li\>(.*?)\<\/li\>/s'
de csak abban az esetben ha a listán belül nincs újabb lista (tehát nem tartalmaz <li> -t,
nem találtam olyan megoldást amivel azt tudom mondani, csak akkor cseréljen ha nem tartalmaz <li> -t
Negatív előretekintéssel
Szerintem ez is jó
Szerintem ez is jó:
Dávid
köszönet
Végül is a Dávid által írt módszert kismértékben megfejelve sikerült számomra a legegyszerübb módon megoldani:
$this->cache = preg_replace_callback('/\{\@if((.(?!\{\@if))*?)\{if\@\}/s', array('tpl', 'parseIF_'), $this->cache);