Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Les expressions régulières compatibles PERL en PHP, partie 3

Compatible PHP. Cliquer pour en savoir plus sur les compatibilités.Par qwix, le 13 août 2005

Le moteur des expression régulières:

Le but de ce tutorial n'est pas de décrire les différents moteurs utilisables par les expressions régulières mais de décrire celui utilisée par les PCRE, je ne parlerais donc uniquement de celui-là, si vous souhaitez plus d'informations sur ce sujet vous pouvez visiter ce site

Le moteur NFA:

Les expressions régulières compatibles PERL utilisent le moteur NFA(automates finis non déterministes) si vous souhaitez des explications mathématiques sur ce type de moteur, lisez la section 4.6.2 du cours disponible à l'url citées ci-dessus. Sachez toutefois qu'il existe deux types de moteurs(en réalité, il en existe plus mais ils sont basés sur les deux plus généraux ) le NFA(automates finis non déterministes) et DFA(automates finis déterministes), voilà pour les termes 'barbares' lol.

Description:

Contrairement au moteur DFA(déterministe) qui est dirigé par le texte, le moteur NFA(non déterministe) et lui dirigé par l'expression régulière.

Lors d'une reconnaissance utilisant un moteur NFA, le texte cible sera inspecté de nombreuses fois par l'expression régulière. En effet, même si une sous-expression réussit, elle sera appliquée autant de fois que nécessaire, car elle fait partie d'un tout, le but étant de réussir une recherche globale sur la chaine de caratères. Le moteur DFA est lui déterministe, c'est à dire que chaque caractère de la chaine cible n'est inspecté qu'une seule fois s'il existe. S'il est reconnu le moteur gardera sa trace, et l'utilisera si besoin est. Dans tout les cas, et donc contrairement au moteur NFA qui peut inspecter plusieurs fois un caractère, le moteur DFA ne l'inspecte qu'une seule fois et c'est tout.

Vous pouvez donc en déduire que le moteur NFA est plus lent que le moteur DFA, c'est à mon avis le cas, mais nous ne somme pas là pour en débattre et je ne me permettrais pas d'imposer mon avis d'humble utilisateur.

La troisième est dernière partie de ce tutorial sur les expressions régulière compatibles PERL est terminée. Si vous avez des questions n'hésitez pas à les poser dans le forum PHP

:)


Tutorial de Qwix