Problème de Regex
Résolu
Bilow
Messages postés
1193
Date d'inscription
Statut
Membre
Dernière intervention
-
Bilow Messages postés 1193 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 1193 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
En PHP, j'ai une expression régulière à écrire, qui me fait le traitement suivant :
J'ai une chaîne $var qui contient du texte de ce type : un ensemble de caractères sans étoile, puis une étoile, de nouveau un ensemble de caractères sans étoile, une étoile, puis n'importe quoi (cela peut être vide, cela peut contenir des étoiles, etc);
Exemple : a*b*bonjour
Et je dois en tirer a, ensuite b, ensuite bonjour.
Il faut aussi gérer le cas de la chaine vide : a*b*
Je dois récupérer a, ensuite b, ensuite -rien-
Et aussi, il peut y avoir des étoiles dans la troisième partie : a*b*bonjour*hello
Je dois récupérer : a, ensuite b, ensuite bonjour*hello
J'ai déjà essayé d'écrire une bonne dizaine d'expressions différentes, mais elles ne fonctionnent pas.
Exemple :
Je dois régler ce problème avec des expressions régulières, ne me dites donc pas d'utiliser explode();
Aussi, vous serez gentils de bien vouloir essayer les regex que vous m'envoyer avant de les poster.
Merci !
En PHP, j'ai une expression régulière à écrire, qui me fait le traitement suivant :
J'ai une chaîne $var qui contient du texte de ce type : un ensemble de caractères sans étoile, puis une étoile, de nouveau un ensemble de caractères sans étoile, une étoile, puis n'importe quoi (cela peut être vide, cela peut contenir des étoiles, etc);
Exemple : a*b*bonjour
Et je dois en tirer a, ensuite b, ensuite bonjour.
Il faut aussi gérer le cas de la chaine vide : a*b*
Je dois récupérer a, ensuite b, ensuite -rien-
Et aussi, il peut y avoir des étoiles dans la troisième partie : a*b*bonjour*hello
Je dois récupérer : a, ensuite b, ensuite bonjour*hello
J'ai déjà essayé d'écrire une bonne dizaine d'expressions différentes, mais elles ne fonctionnent pas.
Exemple :
$var = "a*b*bonjour*hello";
$case1 = preg_replace("#^([^\*]+)\*([^\*]+)\*(.*)$#", "$1", $var);
$case2 = preg_replace("#^([^\*]+)\*([^\*]+)\*(.*)$#", "$2", $var);
$case3 = preg_replace("#^([^\*]+)\*([^\*]+)\*(.*)$#", "$3", $var);
Je dois régler ce problème avec des expressions régulières, ne me dites donc pas d'utiliser explode();
Aussi, vous serez gentils de bien vouloir essayer les regex que vous m'envoyer avant de les poster.
Merci !
1 réponse
Oh zut...
En fait, les regex que j'ai posté au dessus sont bien et fonctionnent. Ce sont les dernières que j'ai écrites, et comme par hasard, c'est celles qui faut. Mais avec Notepad++, le système FTP était déconnecté, je ne l'avais pas vu, et la page ne s'enregistrait pas, ce qui laissait le résultat en erreur.
Merci !
[Résolu]
En fait, les regex que j'ai posté au dessus sont bien et fonctionnent. Ce sont les dernières que j'ai écrites, et comme par hasard, c'est celles qui faut. Mais avec Notepad++, le système FTP était déconnecté, je ne l'avais pas vu, et la page ne s'enregistrait pas, ce qui laissait le résultat en erreur.
Merci !
[Résolu]