hmmm et ben c'est tendu ..
y a le "## bis" qui est chiant quoi.
Mais bon c'est chaud de simplifier d'avantage. Je serais toi, je réserverais les '##' pour la déclaration d'un item, donc interdiction d'en mettre dans le contenu.
y a le "## bis" qui est chiant quoi.
<?php
$t =
'## bout5 [html]
Bouh 5
## bout6
Bouh 6
Bouh 6 ## bis
Bouh 6
##
Bouh 7
Bouh 7 bis';
echo "Texte à parser:\n", "$t\n\nRésultat:\n\n";
$ar = array();
$ex = "/^## ?(\w)?(?: \[(\w+)\])?(((?!^##).)+)/ms";
/*
j'ai fait un peu au pif car je ne connais pas la syntaxe '(?'.
J'en ai déduit que ça voulait dire "ne pas capturer cette parenthèse"
et "(?:" pour "osef du texte suivant"
*/
preg_match_all($ex, $t, $ar, PREG_SET_ORDER);
print_r($ar);
Mais bon c'est chaud de simplifier d'avantage. Je serais toi, je réserverais les '##' pour la déclaration d'un item, donc interdiction d'en mettre dans le contenu.