Page 1 sur 1

[Zend] Expressions régulières

Posté : 03 juil. 2008, 13:17
par katagoto
Bonjour à toutes et tous,

Voilà, je dispose de Zend studio, et j'aimerais me servir des expression régulière, pour le search&replace, seulement, je n'ai rien trouvé dans la doc et les REGEX de PHP ne fonctionne pas avec, auriez vous une source qui pourrait m'apprendre à les manipuler ?

Par avance merci.

Posté : 03 juil. 2008, 17:32
par Berzemus
leur regex n'est pas compatible perl ?

Posté : 03 juil. 2008, 18:17
par katagoto
Je sais pas moi, j'entre un regex comme pour preg_replace et ça me dit syntaxe incorrecte :/

Posté : 03 juil. 2008, 18:21
par Shrell
essaie sans les délimiteurs peut-être ?

Posté : 03 juil. 2008, 20:59
par Cyrano
J'utilise assez régulièrement les expressions régulières avec le ZDE sans difficultés particulières : fais-donc voir le masque que tu as essayé, il doit y avoir une coquille dedans :-k

Posté : 03 juil. 2008, 21:32
par katagoto
Bah, quand je fais : #)(?:\s)?{# et que je veux remplacé ça part )\n{, hop y a une erreur de syntaxe...

Posté : 03 juil. 2008, 22:27
par Cyrano
logique, d'abord il ne faut pas mettre de délimiteurs, ensuite la première parenthèses fermante est le principal déclencheur de l'erreur : essaye plutôt

Code : Tout sélectionner

\)(?:\s)?{
Tu conserveras donc la première parenthèses non comme un caractères spécial réservé des regexp mais comme le caractère "parenthèse". Enfin j'utiliserais plutôt ceci :

Code : Tout sélectionner

\) *{
Quel que soit le nombre d'espaces, qu'il n'y en ait pas du tout ou bien qu'il y en ait 20.

J'ajoute que tu ne feras pas un gain de performance significatif en mettant le "?:" pour rendre l'expression "non gourmande" et tu peux le retirer à mon avis.

Par contre, si j'interprête correctement ce que tu veux faire, à savoir ramener a la ligne les accolades ouvrantes de tes fonctions, tu vas au devant d'une déception et tu vas te retrouver avec des fonctions écrites telles quelles "function mafonction()\n{" au lieu d'avoir le retour de chariot attendu.

Si tu veux faire ça, utilise Notepad++ qui effectuera le remplacement comme tu l'attends, toujours sur la base de cette même expression régulière bien entendu.

Posté : 04 juil. 2008, 10:06
par katagoto
Ok, merci :lol: