Problème de Regex
Résolu
Bilow
Messages postés
1014
Date d'inscription
Statut
Membre
Dernière intervention
-
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 1014 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 !
A voir également:
- Regex ne commence pas par
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Regex negation chaine caractère - Forum Programmation
- Bonjour je cherche la réponse à la devinette svp ✓ - Forum Loisirs / Divertissements
- Expressions régulières "ne contient pas ..." ✓ - Forum Programmation
- Musique qui commence doucement puis accélère techno - Forum Musique / Radio / Clip
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]