Bonjour à tous,

Je suis à la recherche du bon pattern pour expression régulière.
Voilà ce que j'ai fait pour le moment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$reg = '#(<li class[^>]+>)(<a href[^>]+>)(.*)(</a>)(</li>)#iD';
$rep = $before.'$1$2$3$4$5'.$after;
$str = preg_replace($reg, $rep, $str);
qui fonctionne très bien et qui me permet d'ajouter un élément soit avant, soit après mon élément li.

Mon problème est que cette liste me sert à générer dynamiquement un menu et lorsqu'il y a des éléments de sous menu on intègre (Wordpress) une balise ul à l'intérieur de la balise li de l'élément parent de menu.

Du coup il faudrait quelque choses comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$reg = '#(<li class[^>]+>)(<a href[^>]+>)(.*)(</a>)(<ul><li class[^>]+><a href[^>]+>.*</a></li></ul>)(</li>)#iD';
mais ça ne fonctionne pas.