Regex séparateur []et espace [Résolu]

cs_moumouf 70 Messages postés lundi 3 août 2009Date d'inscription 9 juillet 2011 Dernière intervention - 12 août 2009 à 17:08 - Dernière réponse : cs_moumouf 70 Messages postés lundi 3 août 2009Date d'inscription 9 juillet 2011 Dernière intervention
- 13 août 2009 à 15:35
Bonjour,

Un petit exemple clair :

$search = 'toto est [un idiot]';

Je souhaiterai avoir comme retour (avec preg_match_all)
array(0 => 'toto', 1 => 'est', 2 => [un idiot]);


Voici ma regex actuelle, qui ne me récupere que [un idiot] preg_match_all('#\[.*\]|(\s+(\w+)\s$)#', $search, $occ)

Pas moyen de recuperer les mots entre espaces...

Merci d'avance à l'âme charitable qui m'aidera ;)
Afficher la suite 

3 réponses

Répondre au sujet
cs_moumouf 70 Messages postés lundi 3 août 2009Date d'inscription 9 juillet 2011 Dernière intervention - 13 août 2009 à 15:35
+3
Utile
Qqun m'a donnée la solution sur un autre forum, je la colle au cas où il y aurait des interressés.

#(\[[^\]]+\])|([a-zA-Z0-9][^ $]*)#
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_moumouf
cs_TropNul 341 Messages postés dimanche 18 septembre 2005Date d'inscription 22 octobre 2009 Dernière intervention - 13 août 2009 à 07:13
0
Utile
Bonjour,

C'est peut-être à cause du $ dans ton pattern. Cela cherche donc uniquement la partie "\s+(\w+)\s" uniquement pour une fin de chaine.

J'utiliserais, de préférence, le pattern suivant :

#(\s\w+?\s|\[[^\]+?]\])#

Cordialement
Commenter la réponse de cs_TropNul
cs_moumouf 70 Messages postés lundi 3 août 2009Date d'inscription 9 juillet 2011 Dernière intervention - 13 août 2009 à 13:36
0
Utile
bonjour et merci pour votre aide

cependant ceci avec :
preg_match_all('#(\s\w+?\s|\[[^\]+?]\])#', $search, $occ)

ne trouve pas d'occurences pour l'exemple : toto [est un] idiot

et dans la finalité voici ce que j'aimerai avoir
array(0 => 'toto', 1 => 'est un', 2 => 'idiot');
au lieu de
array(0 => 'toto', 1 => '[est un]', 2 => 'idiot');
Commenter la réponse de cs_moumouf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.