JeuWeb - Crée ton jeu par navigateur
Une regex pas simple... - 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 : Une regex pas simple... (/showthread.php?tid=2518)

Pages : 1 2 3


RE: Une regex pas simple... - niahoo - 18-09-2010

mais heu... ça sert à quoi pastie en fait ??


RE: Une regex pas simple... - Globe - 18-09-2010

A enregistrer des ctrl c ? J'avoue que c'est pas bien clair =)


RE: Une regex pas simple... - srm - 18-09-2010

A coller des bouts de code pour les montrer à quelqu'un.
Vous n'avez jamais utilisé un site du genre ? C'est pourtant ultra connu et utile Smile
Comme ça par exemple : http://pastie.org/1165407


RE: Une regex pas simple... - niahoo - 18-09-2010

heu non.. mais maintenant que je connais effectivement ça peut être sympa pour partager un snippet.


RE: Une regex pas simple... - atra27 - 18-09-2010

quel atout par rapport a pastebin?

Ensuite tu demande une regex...
Tu peut pas me faire une version de ce que tu veux parser avec des item1 desc1 etc pluot que tes bout1 et tout??

En gros que le texte represente ce que la var doit contenir a la fin

Stp


RE: Une regex pas simple... - srm - 18-09-2010

Pastie était qu'un exemple, je ne suis pas là pour dire pourquoi je préfère pastie à pastebin Smile

Je vais te faire une version avec item et desc plutôt que bout1 etc puisque tu le demandes, bien que je ne vois pas la différence Smile

Code :
## controleur.php [php]

class monSuperControleur {
public function quifaitrien() { echo "## ou presque rien"; }
}

## mavue.html [html]
<p>Qui ne contient pas grand chose hormis ##</p>

##
Pas de nom ni de syntaxe pour ce bloc car en fait c'est juste
un commentaire écrit qui ne représente ni fichier, ni syntaxe
Super non ? Attention au piège du ## ;)

Satisfait ? Smile


RE: Une regex pas simple... - atra27 - 18-09-2010

Heu, ta regex la? tu as pas dit que le but était seulement de la simplifier?

Parce qu'elle fonctionne pas du tout!

Sur ton exemple elle me retourne:
Array (
[0] => ## controleur.php [php]
[1] => controleur.php
[2] => php
[3] => )
Alors que 3 devrai être ton contenu...

J'ai passé 1h dessus se soir, la mienne sélectionne en plus la première ligne du contenu (et est un peu plus simple que la tienne) mais sa répond pas encore au cahier des charges!

Pour être bien il faudrait que la fin de la regex sélectionne tous les caractères, échappements compris, jusqu'à rencontrer un retour a la ligne (/r, /n ou /n/r) directement suivit de doubles #

La réside le probléme:
Si je met les options en 'mi', la regex s'arrête a la fin de la ligne avec le (.*), et comme on peut pas savoir combien il y aura de lignes de codes
Sinon en plaçant e option 'si', la regex me sélectionne bien les infos, mais j'arrive pas a l'arrêter a la condition que j'ai cité plus haut, et encore moins a lui dire de repartir a zéro depuis cette position (pour sélectionner la partie de code suivante)

De la même façon, le nombre de parties de codes sont indéfinies je suppose, on peut avoir 1 comme 5 'fichiers' dans la variable de départ? donc on peut pas faire un copier collé de la première regex pour qu'elle se répète a la suite...

Bref c'est absolument obligé que sa se fasse en une regex?
Avec une boucle et des if else sa me parait plus simple! et puis c'est pas un script qui va tourner 24h sur 24 donc est-ce bien utile de perdre du temps la dessus?

J'ai fait de mon mieux... quelqu'un d'autre veut s'y essayer?


RE: Une regex pas simple... - srm - 18-09-2010

Comme tu peux le constater ma regex marche :
[Image: f647b95bad60f94a65c6209226fa78ea.png]


RE: Une regex pas simple... - atra27 - 19-09-2010

Mais enfaite, si elle marche? il est ou le probléme?


RE: Une regex pas simple... - srm - 19-09-2010

(17-09-2010, 11:45 AM)oxman a écrit : J'ai bien trouvé une regex qui fait ça, mais elle est relativement compliquée, donc je viens vous demander vos solutions pour voir si vous en trouvez une plus simple.