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

Messages postés
70
Date d'inscription
lundi 3 août 2009
Dernière intervention
9 juillet 2011
- - Dernière réponse : cs_moumouf
Messages postés
70
Date d'inscription
lundi 3 août 2009
Dernière intervention
9 juillet 2011
- 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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
70
Date d'inscription
lundi 3 août 2009
Dernière intervention
9 juillet 2011
3
Merci
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][^ $]*)#

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de cs_moumouf
Messages postés
341
Date d'inscription
dimanche 18 septembre 2005
Dernière intervention
22 octobre 2009
0
Merci
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
Messages postés
70
Date d'inscription
lundi 3 août 2009
Dernière intervention
9 juillet 2011
0
Merci
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.