IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Format de compilateur avec preg_match [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut Format de compilateur avec preg_match
    Bonjour à tous,

    Je suis tombé sur un super site récapitulatif pour les regex:

    http://regexlib.com/CheatSheet.aspx?...ookieSupport=1

    Dans celui-ci, dans le troisième chapitre "Character Classes", on peut lire pour la ligne "\s" le commentaire suivant:

    \s Matches any white-space character. Equivalent to the Unicode character categories [\f\n\r\t\v\x85\p{Z}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \s is equivalent to [ \f\n\r\t\v].
    ma question est donc:
    le preg_match php utilise-t-il l' "ECMAScript option" dont il parle ou non ?

    Merci bien

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    il n'y a pas de référence à "ECMAScript option" en php mais \s (pour remplacer tout caractère blanc) existe
    http://www.php.net/manual/fr/regexp....nce.escape.php
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  3. #3
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Okay merci

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Je viens de réaliser que cette page concerne les regex en .net!

    En PHP, c'est un peu différent. Le flag RegexOptions.ECMAScript disponible en .net, peut se traduire par ces deux options avec PCRE, le moteur de regex de PHP:

    1) L'option PCRE_JAVASCRIPT_COMPAT qui n'est pas accessible via PHP, mais à la compilation du module PCRE. Elle permet de privilégier une syntaxe de pattern plus proche de Javascript au détriment de la syntaxe Perl par défaut.
    Par exemple, si la pattern /]/ est correcte et correspond au caractère litéral ] avec le mode Perl par défaut, elle provoquera une erreur avec le mode Javascript (comme en Javascript d'ailleurs!)
    Il y a d'autres différences concernant notamment l'utilisation des références arrières (backreferences) avant qu'elles ne soient définies (autorisée en Javascript mais pas en Perl), et l'interprétation des séquences d'échappement \U \u \x.
    Mais cela ne modifie en rien les classes de caractères \d \w ou \s.

    2) Par contre, il y a l'option PCRE_UCP (unicode property) qui, elle, est accessible depuis PHP par le biais soit du modificateur u placé après le délimiteur de fin, soit de (*UCP) placé au début de la pattern. Cette option va élargir le contenu des classes de caractères \d \w et \s tel que décrit dans le mémo. Effectivement, sans cette option, toutes ces classes ont du coup le même contenu basique que celles en Javascript, en Python ou en Java...

    Quoi qu'il en soit, à moins qu'il y ait une volonté spéciale, le module PCRE d'une configuration PHP est la plupart du temps compilé sans ces deux options, ce qui permet pour ce qui est de la deuxième de la solliciter soit-même quand on en a besoin (il faut savoir que cette option diminue les performances car il y a plus de caractères à tester.)
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] XML-->XSLT output format apres transformation avec un x
    Par Hoegaarden dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2010, 12h51
  2. Formater un nombre avec Crystal Reports
    Par Soph70 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 05/07/2005, 20h27
  3. [format des données avec une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 10/03/2005, 14h24
  4. [Kylix 3] Probleme de compilateur
    Par iwky dans le forum EDI
    Réponses: 1
    Dernier message: 11/12/2004, 20h40
  5. problème HD ntfs formaté sous WinXP avec win2000
    Par kalminou dans le forum Windows XP
    Réponses: 7
    Dernier message: 27/08/2003, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo