JeuWeb - Crée ton jeu par navigateur
[Regexp] Aide pour créer des regexp - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Regexp] Aide pour créer des regexp (/showthread.php?tid=5906)

Pages : 1 2


[Regexp] Aide pour créer des regexp - niahoo - 03-01-2012

Hello,

je cherche à parser des chaines pour en extraire des hashtags

par exemple, si je passe la chaine "#salut bon#jour je #voudrais #manger"

Il faudrait que je récupère 'salut', 'voudrais' et 'manger' mais pas 'jour'. En gros il faut que le mot commence par #

Code :
/#([a-zA-Z0-9]+)/

mais là ça me prends 'jour' aussi. C'est quoi le truc ?
Arf non ben en fait çà marchait

Code :
/(^|\s)#([a-zA-Z0-9]+)/



RE: [Regexp] Mot qui commence par # - Shidame - 03-01-2012

Bonjour,

Celà fait un petit moment que j'ai pas touché à ça mais est ce qu'il faudrait pas mettre quelque chose du genre :

Code :
^/#([a-zA-Z0-9]+)/



RE: [Regexp] Mot qui commence par # - Viciousity - 03-01-2012

Avec ça, tu capture tout ce qui commence par un # mais en capturant l'espace avant aussi.
Code :
(^#([a-zA-Z0-9]+))|( #([a-zA-Z0-9]+))



RE: [Regexp] Mot qui commence par # - niahoo - 03-01-2012

Merci quand même pour vos réponses !

J'ai trouvé une solution qui me renvoie tout dans un même tableau en php que le tag soit précédé d'un espace ou bien soit au début de la chaine.




RE: [Regexp] Mot qui commence par # - Angelblade - 03-01-2012

Cette version de ton code est plus souple mais c'est ptet pas ce que tu veux

Code :
/(^|\s+)#([^#\s]+)/




RE: [Regexp] Mot qui commence par # - niahoo - 03-01-2012

Je sais pas encore, j'ai rajouté les '-' et '_' et a priori je n'ai rien contre les tags avec des caractères spéciaux mais instinctivement je les ai bloqués


RE: [Regexp] Mot qui commence par # - Angelblade - 04-01-2012

Oui t'as raison c'est mieux, ça dépend de l'usage.


RE: [Regexp] Mot qui commence par # - srm - 04-01-2012

/(?!\b)#([a-zA-Z0-9_-]+)/

Smile


RE: [Regexp] Aide pour créer des regexp - niahoo - 08-03-2012

Hello,

aujourd'hui j'aurais besoin de parser des tableaux dans des noms de champ pour variables POST
soit la chaine "tttttt[aaaaa][bbbbb][cccc][zzzz]", je voudrais récupérer tous les éléments du chemin, à savoir tttt, aaaa, bbbb, cccc et zzzz.
Pour le moment je n'arrive à récupérer que le premier et le dernier.

Il peut ne pas y a voir de parties entre crochets, par contre il y aura toujours une partie sans crochet au début.

merci !



$key = 'qzdqzd[aaaaa][bbbbb][cccc][zzzz]';
$matches = array();
preg_match_all('/([a-zA-Z0-9]+)(?:\[([a-zA-Z0-9]+)\])*/', $key, $matches, PREG_SET_ORDER);
var_dump($matches);



RE: [Regexp] Aide pour créer des regexp - Hideaki - 08-03-2012

Et avec cela [a-zA-Z0-9]* puisque tu ignores les crochets. Es-ce que tu souhaites ?