Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 17h29   #1
Expert Confirmé
 
Avatar de Aspic
 
Homme Florent Diedler
Étudiant
Inscription : août 2005
Messages : 3 720
Détails du profil
Informations personnelles :
Nom : Homme Florent Diedler
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 3 720
Points : 3 392
Points : 3 392
Par défaut Récupérer texte entre crochets

Bonsoir à tous,

J'ai beaucoup de mal avec les expressions régulières et je voudrais trouver un pattern qui permet de récupérer TOUTES les tags entre crochet d'une chaine.

Exemple :
Citation:
bonjour [nom],

[prenom] va bien ?
Retournera :
Citation:
[nom] et [prenom]
Dans un array ca sera l'idéal

Je pense qu'il faut utiliser preg_match_all ou preg_match mais aucune idée du pattern...

Celui que j'ai trouvé sur le net ne fonctionne pas :
Citation:
$pattern = '#(\\[[^\\]]++\\])\s*(\\[[^\\]]++\\]\s*)*(.*)#';
Voilà, je vous remercie par avance.

Bonne soirée
__________________
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =

Ne pas oublier le Tag !
Aspic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 17h50   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Simplement comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$s = 'bonjour [nom],
 
[prenom] va bien ?';
 
preg_match_all( '#\[(\w+)]#', $s, $m );
print_r( $m );
 
/*
Array
(
    [0] => Array
        (
            [0] => [nom]
            [1] => [prenom]
        )
 
    [1] => Array
        (
            [0] => nom
            [1] => prenom
        )
 
)
*/
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 19h07   #3
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 26
Points : 26
Est-ce qu'un pattern comme celui-là te conviendrait :
$pattern='#(\[[^\]]*\])#';

La différence avec celui de Bisunurs étant que tout contenu mis entre crochet sera sélectionné, espace caractères spéciaux ... Avec le pattern de Bisunurs seul des mots entre crochet seront sélectionnés. Le choix est donc à faire selon les caractères que tu attends entre crochets.
niehu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 22h48   #4
Expert Confirmé
 
Avatar de Aspic
 
Homme Florent Diedler
Étudiant
Inscription : août 2005
Messages : 3 720
Détails du profil
Informations personnelles :
Nom : Homme Florent Diedler
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 3 720
Points : 3 392
Points : 3 392
Un grand merci à vous deux.

En effet, celui de Bisunurs me convient mieux car les tags n'ont pas de caractères spéciaux

Excellente soirée
__________________
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =

Ne pas oublier le Tag !
Aspic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h38.


 
 
 
 
Partenaires

Hébergement Web