Problème de Regex
Résolu
Bilow
Messages postés
171
Date d'inscription
Statut
Membre
Dernière intervention
-
Bilow Messages postés 171 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 171 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
- Musique qui commence doucement puis accélère techno - Forum Musique / Radio / Clip
- Regex negation chaine caractère - Forum Programmation
- Regex "ne commence pas par XX" ✓ - Forum PHP
- Le document à télécharger comporte 19 pages. en numérotant automatiquement chaque page de ce document, on constate que sa numérotation ne commence pas à 1. quel nom d’animal apparaît sur la page avec le numéro 30 ? ✓ - Forum Bureautique
- Numéro commençant par 09 70 ✓ - Forum Mobile
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]