ams51 Posté 21 Novembre 2005 Partager Posté 21 Novembre 2005 Bonjour, Je voudrais extraire des sous-chaines d'une chaine de caractère. Les sous chaines sont délimitées par le caratère "_" Je voudrai utiliser des expressions régulières mais j'ai vraiment du mal ! mon code : $MaChaine="_valeur1_val2_"$Expression="/_(.)*(?=_)/"; preg_match_all($Expression, $MaChaine, $lesvar, PREG_SET_ORDER);$var1=$lesvar[0][1]; //=valeur1$var2=$lesvar[1][1]; //=val2 Ma faille viendrait de $Expression (ne tenez pas compte de ce qu'il y a dedans, j'ai fait plein d'essais et j'ai laissé le dernier )... Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 21 Novembre 2005 Partager Posté 21 Novembre 2005 Peut-être $Expression="/(_)(.*)(_)(.*)(_)/"; mais ça n'est qu'une proposition, je ne maîtrise pas assez les expressions régulières pour arriver à des résultats positifs sans tâtonnement Lien vers le commentaire Partager sur d’autres sites More sharing options...
ams51 Posté 21 Novembre 2005 Auteur Partager Posté 21 Novembre 2005 Merci... Le "bon" code : $MaChaine="_valeur1_val2_"$Expression="/_(.*?)_(.*?)_/";preg_match_all($Expression, $MaChaine, $lesvar, PREG_SET_ORDER);$var1=$lesvar[0][1]; //=valeur1$var2=$lesvar[0][2]; //=val2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 21 Novembre 2005 Partager Posté 21 Novembre 2005 "(.*?)" ne veut trop rien dire "(.*)" = 0 ou plusieurs occurences de n'importe quel caractères "(.?)" = 0 ou 1 occurence de n'importe quel caractères Pour le reste l'usage ou non de parenthèses pour délimiter la chaîne underscore ne doit pas être un problème. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant