[RESOLU] Récupérer tous les éléments entre crochets

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Récupérer tous les éléments entre crochets

Re: Récupérer tous les éléments entre crochets

par Furax » 28 nov. 2017, 12:04

Super, merci beaucoup pour ton aide et l'adresse du site qui est déjà dans mes favoris. :)

Re: Récupérer tous les éléments entre crochets

par @rthur » 28 nov. 2017, 12:02

En fait les délimiteurs de la regex (le dièse dans ton cas) est déjà intégré en dur dans regex101.
Si tu le retire de ta regex alors ça fonctionne.
Ma recommandation est d'ailleurs d'utiliser le caractère ` (AltGr + 7) comme délimiteur car il y a moins de risque que ça se retrouve dans une regex qu'un dièse.

Par ailleurs, si tu veux récupérer le texte, tu peux mettre des parenthèses capturantes, comme ceci :
https://regex101.com/r/BKCwry/2

Re: Récupérer tous les éléments entre crochets

par Furax » 28 nov. 2017, 11:53

Etrange, j'ai une expression qui fonctionne dans mon code, mais le site me dit que rien ne correspond:
https://regex101.com/r/BKCwry/1

Code : Tout sélectionner

$monTexte = "1 [abc] 2 [def] 3 [ghi] 4 [klm] 5"; $pattern = '#\[[^\]]*\]#'; $result = preg_match_all($pattern, $monTexte, $out); var_dump($out);

Re: Récupérer tous les éléments entre crochets

par @rthur » 28 nov. 2017, 11:34

A noter que si tu cliques sur Save regex, il va te fournir une url unique avec tes données de test que tu peux partager ensuite ici si tu veux un coup de main

Re: Récupérer tous les éléments entre crochets

par Furax » 28 nov. 2017, 11:13

Ok merci.
Je ne connaissais pas ce site, super pratique pour tester ça.

Re: Récupérer tous les éléments entre crochets

par @rthur » 28 nov. 2017, 11:08

Bonjour,
Cela se fait avec la fonction preg_match_all()
Et il faut que tu crées une expression régulière pour obtenir ce que tu veux.
Je te recommande d'utiliser le site http://regex101.com pour construire et tester ton expression régulière (regex). Important : les crochets sont des caractères spéciaux dans les expressions régulières donc il faut que tu les "échappes" en mettant un antislash devant : \[ et \]

Essaye par toi même de construire ta regex et reviens vers nous quand tu auras avancé si tu es toujours bloqué.

Récupérer tous les éléments entre crochets

par Furax » 28 nov. 2017, 10:54

Bonjour,

J'ai une chaine de caractères, ave certains mots ou expressions cernés de crochets.
Ex: Bonjour [comment] allez-[vous] ?

Je souhaiterais pouvoir récupérer tous les mots situés entre crochets, mais vous vous en doutez, je n'y parviens pas...

Par avance, merci pour votre aide!