| Qui est en ligne ? |
| Il y a : 10 utilisateurs en ligne, consultez le détail |
Forum » Serveur, Réseaux et Programmation » Souci avec des regexp |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 26-01-2007 à 19:15:56 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
Bonjour je code un bbcode avec php. J'utilise des expressions rationelles, mais j'ai un problème. Imaginons que je veuille bbencoder cette chose : [ g ] Gras [ / g ] Pas gras [ g ] Gras[ / g ] Mas regexp est "/\[g\](.+)?\[\/g\]/s" avec le "s" pour prendre les sauts de lignes. Je m'attend donc à obtenir : "Gras Pas gras Gras" Mais j'ai "Gras[ / g ] Pas gras [ g ]Gras" Il matche donc la tout grande expression au lieu de matcher les petites d'abord. Je fais ça avec la fonction preg_replace mais je suis prêt à changer de méthode... Comment s'y prendre ? --Message édité par jblecanard le 26-01-2007 à 19:18:31-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
|
|
#1 Message posté le : 27-01-2007 à 12:48:36 |
Hobbit Forum : Inscrit Association : Arrivé(e) le : 17-10-2003 Nombre de messages : 1067 |
N'utilise pas les . ! Utilise plutôt : [[:blank:]], [[:alnum:]], .. etc Ca optimisera mieux tes regexp . Au lieu de (.)+, je mettrais (([[:blank:]]|[[:alnum:]])+) (A tester quand même) mais dans ce cas on ne prend que les espaces, tabulations, chiffres et lettres . Donc si tu veux rajouter d'autres caractères, il y a d'autres symbôles . --Message édité par tamiel le 27-01-2007 à 12:49:09-- ------------------------------------- If you don't know, ask manpage ! |
|
|
#2 Message posté le : 03-02-2007 à 23:12:09 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
Hélas même de cette manière, le résultat est le même. Edit : en ajoutant le modifier "U" au "s" déjà existant, celà fonctionne, cependant, il reste un problème vis-à-vis des balises emboitées... Mais je constate que ce problème apparaît sur tous les bbcodes, y compris celui de trustonme. Résolu donc... --Message édité par jblecanard le 04-02-2007 à 15:53:33-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
| Page : [1] |
Forum » Serveur, Réseaux et Programmation » Souci avec des regexp |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages