![]() |
petit probleme de regex - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : petit probleme de regex (/showthread.php?tid=4785) |
petit probleme de regex - php_addict - 03-05-2010 bonjour je suis confronté avec un tout petit probleme de regex, et je n'arrives pas à le resoudre: j'ai une chaine du genre: Code : blabla [b]gras[/b] blabla [i]italique[/i] blabla je voudrais en extraire ceci: Code : [b]gras[/b],[i]italique[/i] mais avec ma regex suivante: Code : $search[0]='#(.*)\[(.*)\](.*)\[(.*)\](.*)#isU'; je n'obtiens que: Code : [b]gras[/b],[i]italique[/i], blabla c'est à dire que la fin de la chaine n'est pas remplacée (blabla) auriez vous la gntillesse de me donner un coup de main? ![]() bonne journée RE: petit probleme de regex - Allwise - 03-05-2010 Tu captures ce qui est hors balises bbcode. Enlève les parenthèses qui servent à rien : Code PHP :
Code PHP :
RE: petit probleme de regex - keke - 03-05-2010 j'ai jamais rien capté aux regex ... J'utilise que des fonctions de bases. Désolé ! kéké RE: petit probleme de regex - php_addict - 03-05-2010 salut (03-05-2010, 09:52 AM)Allwise a écrit : Tu captures ce qui est hors balises bbcode. Enlève les parenthèses qui servent à rien : le resultat reste strictement le même en enlevant les parantheses...comprends pas...:hahahaha: la fin de ma chaine n'est pas éludée... RE: petit probleme de regex - Ter Rowan - 03-05-2010 (03-05-2010, 02:25 PM)php_addict a écrit : salut je ne connais pas assez pour te donner une vraie réponse mais est ce que ce qui est écrit ne sépare pas simplement en : si il y a [] alors faire [] si il y a xxx alors faire xxx si il y a [/] alors faire [/] alors que ce que tu veux c'est si il y a []xxxx[/] alors faire [] puis xxxx [/] grosso modo est ce qu'il ne faudrait pas une parenthèse $search[0]='#.*(\[(.*)\](.*)\[(.*)\]).*#isU'; quite d'abord à extraire la chaine []xxxx[/] puis après à l'exploser voyez ce que je veux dire ? RE: petit probleme de regex - julp - 03-05-2010 Hum, c'est une question de gourmandise/non-gourmandise et d'"ambiguïté" avec le métacaractère point matchant tout. Code : #([^[]*)\[([^\]]*)\]([^[]*)\[([^\]]*)\]([^[]*)#s S'il est bien question d'extraction, preg_match_all ne serait-elle pas plus appropriée ? Code : ~\[([^\]]+)\](.*)\[/\1\]~sU RE: petit probleme de regex - php_addict - 03-05-2010 oulalala la galère ! les expression regulieres , ce n'est pas la même chose que les Expressions rationnelles globales ? il y a du POSIX et du PCRE regex c'est bien "expressions regulieres" ? en quoi est ce different des"Expressions rationnelles globales" ? j'suis completement perdu... dejà que j'ai du mal avec preg_replace alors avec preg_match_all je t'en parles même pas... ceci dit mon parser fonctionne très bien quand même mais c'est pas très propre... je crois que je vais gravement galérer, voir même ne pas y arriver du tout... |