PCRE ou POSIX ???

Eléphant du PHP | 101 Messages

19 sept. 2005, 14:07

(Débutant)

Salut à tous, ce sujet a déjà été abordé mais je le relance dans la section Database car :

Lors de mes premiers pas pour tester la validité d'un formulaire, j'ai foncé sur la solution preg_match() pour diviser le champs email... On m'a tout de suite dit d'utiliser plutot des regex (qui à l'époque était un nouveau chinois pour moi...) on m'a aussi conseillé d'apprendre directement avec les PCRE (plutot qu'avec des POSIX) car à égalité de difficulté d'apprentissage, elles sont plus efficaces. OK je m'y suis mis et j'ai plutot pas mal compris (le concept au moins...)

Maintenant que j'ai fini la partie de mon livre dédiée au PHP, je viens de m'attaquer à l'apprentissage de Mysql. Or j'arrive au moment ou l'on me dit que l'on peut utiliser des regex avec SELECT, oui mais on me dit aussi que mysql se sert des POSIX ??? Cela va-t-il me poser des problèmes par la suite?

Merci d'avance pour votre aide!

:D

A+
nan!

Mammouth du PHP | 19672 Messages

19 sept. 2005, 18:27

Il y a sur le site de la Doc de MySQL des explications assez détaillées sur le sujet
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1380 Messages

19 sept. 2005, 20:43

(Débutant)
Or j'arrive au moment ou l'on me dit que l'on peut utiliser des regex avec SELECT, oui mais on me dit aussi que mysql se sert des POSIX ??? Cela va-t-il me poser des problèmes par la suite?
Non, du tout. La syntaxe est différente, plus simple mais moins riche.

Tu as bien été conseillé d'apprendre les fonctions d'expressions régulières de la librairie PCRE plutôt que les POSIX. Dans PHP, elles sont *beaucoup* plus rapides et infiniment plus riches.

Cette librairie encapsule même la syntaxe POSIX, ce qui veut dire que tu peux utiliser des motifs POSIX dans les motifs PCRE (à quelques nuances près) mais pas l'inverse.

Dans MySQL, c'est effectivement la syntaxe POSIX (plus simple) qui est utilisée. Mais moteur de regex de MySQL (non deterministic) est beaucoup plus rapide que le moteur POSIX de PHP. Et c'est compréhensible: une bdd MySQL peut compter des millions d'enregistrements!

Suit le lien de Cyrano et fais des tests. La syntaxe est très simple si tu connais déjà la syntaxe PCRE.
ripat

Eléphant du PHP | 101 Messages

20 sept. 2005, 08:57

OK merci pour tout, j'ai eu réponse à mes interrogations! :D
nan!