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 :

Caractère louche à preg_matcher


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Caractère louche à preg_matcher
    yo

    petite colle pour vous. Entre integer et PRIMARY_KEY il y a un espace qui en fait n'en est pas un. Je cherchais a executer cette exemple, qui est donc un copier collé, par un regexp php, or je n'arrive pas a faire un pregmatch de ce caractere.
    Ce n'est ni une tabulation, ni un espace.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE clients
    (
    	id		integer	PRIMARY_KEY	,
    	nom		string	NOT_NULL	,
    	pnom		string			,
    	age		integer
    );
    le regexp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (preg_match('/(CREATE TABLE )([[:alnum:]]*) *\((.+)\);/', $com, $var))
    petit imprim ecran de code dans notepad++ avec mise evidence du caractere en question:


  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Votre expression par rapport au texte donné ne convient pas : le flag s est requis pour que le métacaractère . inclut les sauts à la ligne (ce n'est pas le cas par défaut). L'espace juste après la deuxième parenthèse capturante n'est pas présent dans votre exemple mais est un retour à la ligne : je pense qu'il serait à remplacer par \s (équivalent de [[:space:]]).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    D'après ton masque, tu sembles vouloir récupérer les variables de la table...
    Si c'est ce que tu veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?
     
    $com = '
    CREATE TABLE clients
    (
    	id		integer	PRIMARY_KEY	,
    	nom		string	NOT_NULL	,
    	pnom		string			,
    	age		integer
    );
    ';
     
    if (preg_match('/(CREATE TABLE)([[:blank:]]+)([[:alpha:]]+)([\r\n]*)\(([[:alpha:][:punct:]\s]+)\);/', $com, $var)) {
     echo '<pre>';
      print_r($var);
     echo '</pre>';
    }
     
    ?>
    Sinon, j'ai pas bien saisi ce que tu cherches à faire...

Discussions similaires

  1. [RegEx] Preg_match et caractères étrangers
    Par ikki67 dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2013, 16h21
  2. preg_match et les caractères spéciaux
    Par Christophe.G dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/11/2012, 23h42
  3. Preg_match, trouvé chaine de caractère.
    Par Friksstyle dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2010, 14h14
  4. [Système] Caractères spéciaux et preg_match
    Par theo7 dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2007, 19h19
  5. Réponses: 2
    Dernier message: 04/10/2006, 13h03

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