PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 24-02-2011 23:13:26

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Y a un roi des RegExp ici ?

Je n'arrive pas à comprendre pourquoi ce sont les \/\* et les \*\/ , donc les /* et les */ qui sont remplacés par des '' et pourquoi il ne s'occupe pas du reste, c'est à dire  de .*, qui fait aussi partie du masque.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#27 25-02-2011 03:15:23

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 620
Site Web

Re : Y a un roi des RegExp ici ?

Bonsoir,

Son astuce est de capturer uniquement les commentaires c'est à dire toute séquence commençant par /* et finissant par */ et de la remplacer à chaque fois par '' pour obtenir le résultat escompté. Plus rapide, simple, et malin.
le /s permet en rajoutant le . à son pattern de pouvoir continuer à matcher les mêmes séquences même si par hasard il y en a une qui est coupée par un retour à la ligne.

Dernière modification par Jc (25-02-2011 03:19:49)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#28 25-02-2011 06:58:48

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Y a un roi des RegExp ici ?

Evidemment, comme dirait JM Bigard à propos d'une marque d'huisseries.
Dans preg_replace, il y a replace donc ce qui est décrit c'est ce qui doit disparaître.
Sans prétendre, comme JMB, que cela soit devenu limpide ou que les regexp soient ma nouvelle deuxième langue maternelle. Je crois pouvoir dire que j'ai capté celle-ci.
Bravo not'mcAllan, tu nous as, une fois encore, illustré l'adage KISS mâtiné de ce pensu aliamaniere qui m'est si cher.
La mauvaise nouvelle c'est que tu vas devoir affronter la terrible épreuve du bizou de Pierrot, et va  savoir pourquoi, je n'arrive pas à te l'envier ce trophée. sad


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#29 25-02-2011 09:21:11

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Y a un roi des RegExp ici ?

Bon courage mcAllan...
Tu n'avais pas encore compris qu'on s'évertuais à ne pas trouver la réponse pour ne pas recevoir l'horrible récompense ?

Hors ligne

#30 25-02-2011 10:42:20

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 180

Re : Y a un roi des RegExp ici ?

Tout d'abord : MERCI.
j'ai trouvé une autre solution.
Pour le bizou, je délègue big_smile:D.
xTG ce fera un plaisir de me remplacer big_smile:D
a++

Hors ligne

#31 25-02-2011 10:49:13

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 620
Site Web

Re : Y a un roi des RegExp ici ?

^^ Sacré Pierrot

Au fait, MK, si souci ne prends pas de s au singulier, bisou en possède un^^ wink


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#32 25-02-2011 11:22:37

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Y a un roi des RegExp ici ?

Pierrot a écrit :

un gros bizou à celui qui me trouve la RexExp magique big_smile:D+

Certes, mais je ne faisais que citer Pierrot, dans le texte.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#33 25-02-2011 17:47:20

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Y a un roi des RegExp ici ?

Bonjour,

En effet je n'avais pas fait attention à cette menace de récompense par bisouxx wink

MK a écrit :

Ah les feignasses ! C'est moi le nul en regexp qui doit commenter et/ou expliquer

C'est vrai que je n'ai rien expliqué mais j'avais peu de temps hier soir.

Donc :
Les délimiteurs par ` c'est bien du au fait que c'est un caractère peu utilisé, une bonne habitude à prendre.
Le masque est simple mais pour que cela profite à tous :
les \ sont là pour échapper / et * qui sont des symboles utilisés dans les expressions régulières.
Le . signifie n'importe quel caractère.
* signifie 0,1 ou plusieurs fois (le n'importe quel caractère).
Les options :
U "UNGREEDY" Les masques sont naturellement gourmands (comme MK) et le notre capturerait tout entre le premier /* et le dernier */. Le U sert donc de coupe faim et l'oblige à capturer par petit morceaux.
i "CASELESS" avec cette option le masque est insensible à la casse, il n'est pas nécessaire dans notre cas.
s "DOTALL" comme l'a expliqué Jc permet au . de continuer la capture même en cas de passage à la ligne.

Voila donc quelques explications qui j'espère seront profitable à plus d'un.

MK a écrit :

tu nous as, une fois encore, illustré l'adage KISS mâtiné de ce pensu aliamaniere qui m'est si cher

Heu là je n'ai rien compris... hmm

Pierrot a écrit :

j'ai trouvé une autre solution.

Quand même tu pourrais nous la présenter après tous les efforts fournis wink tongue

A+


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#34 25-02-2011 20:20:06

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Y a un roi des RegExp ici ?

bon alors bon, je suis une buse, mais je vais quand même filer le lien dont parle xTG au début http://gskinner.com/RegExr/ mais c'est pas qu'il l'est trouvé hein c'est un autre wink

sur cette page y a un truc pour tester les expreg (dans le même que ce que Yves avait fait sur expreg ?)) et y a aussi tous un tas de trucs existants dont le multiligne comment

Name: Multiline Comment (load)
Author: Ryan Matsikas
Rating: 3 / 4 (6 votes)
Share Link: http://RegExr.com?2rhmr

Will match all multiline (/* */) comments.

Pattern: /\/\*[\s\S]*?\*\//gm

Ca a l'air de fonctionner (du moins sur leurs testeur XD).


@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#35 25-02-2011 20:38:04

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 620
Site Web

Re : Y a un roi des RegExp ici ?

Bonsoir,

Si vous voulez connaître un testeur d'expression en ligne fiable , ne cherchez plus, et cliquez ici

Si tu test ton pattern sur ce testeur, tu verras qu'il ne fonctionne pas, sauf si
1) tu retires l'option g qui n'existe pas
2) si tu places des parenthèses capturantes pour pouvoir l'utiliser dans un preg_replace
3) ensuite pour la forme tu remplaces les délimiteurs par ceux de mcAllan pour y voir plus clair ce qui donne

$pattern="`(\/\*[\s\S]*?\*\/)`m";

, ce qui fonctionne aussi il est vrai^^

Dernière modification par Jc (25-02-2011 20:47:56)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#36 25-02-2011 22:21:39

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Y a un roi des RegExp ici ?

C'est parce que le lien de moogli se base pas que sur les regex PHP.
Pour avoir programmé en Java j'ai pu observer des différences dans l'utilisation des Regex.
On doit en retrouver dans chaque langage à mon avis... Encore un truc qui a pas été uniformisé. hmm

Hors ligne

#37 26-02-2011 16:48:18

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Y a un roi des RegExp ici ?

Bof c'est surtout que l'optionG c'est flash mais bon la regexp c'est posix ou prce enquitenc'est pareil une fois que t'a le motif ^^

Le but du testeur etant d'avoir un motif de base fonctionnel, ensuite tu le bidouille comme tu veut en ligne pour avoir les parentheses capturantes voulu.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums