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 :

preg_replace et syntaxe des expressions régulières [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 24
    Points
    24
    Par défaut preg_replace et syntaxe des expressions régulières
    Bonjour,

    Je n'arrive pas à apprivoiser le monde mystérieux des expressions régulières. Après avoir fouillé quelque peu le web pour trouver des exemples compréhensibles, je m'en remet à votre expérience.

    Pour commencer simple (enfin je le croyais), je voulais zapper tous les caractères non alpha-numérique d'une chaîne.

    J'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = preg_replace("^[:alnum:]","",$var);
    Mais j'ai droit à l'erreur suivante :
    Warning: No ending delimiter '^' found in d:\sites\referencement\site_php\test.php on line 2

    Je n'ai pas compris ce qu'était un "ending delimeter", la seule chose que je souhaitais c'est exprimé la négation de cette classe. Bref je suis un peu perdu dans la syntaxe. Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, lorsque tu utilises la fonction preg_replace, tu utilises la syntaxe des expressions rationnelles compatibles Perl ; pour cela, il faut, entre autre, utiliser des délimiteurs pour ton expression régulière ; par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#[[:alnum:]]#', $replacement, $string);
    Les # servent de délimiteurs et tu mets entre 2 ton expression régulière. Pour plus de détails, tu peux te référer à http://fr2.php.net/manual/fr/referen...ern.syntax.php

    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    Ok pour les délimiteurs et merci. Il me reste deux questions :

    - le caractère ^ sert -il bien de négation si utilisé devant une classe ?

    Et je tombe sur l'erreur suivante :
    Warning: Compilation failed: POSIX named classes are supported only within a class at offset 1 in d:\sites\referencement\site_php\test.php on line 2

    - une idée de ce que ça signifie ?

    Encore merci.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    ok c'est bon j'avais oublié une paire de []

    Pff c'est galère les expressions régulières. Latex c'est du pipi de chat à côté.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    autre petite faut je sais pas si tu l'as vue c'est ton [:alnum:] et bien ca c'est l'quivalent de ca a-zA-Z0-9 et non de ca [a-zA-Z0-9] donc autour du [:alnum:] il faut rajouter les [] que tu avais oublié.

    Enfin il me semble je me suis lancé il y a peu dans les expressions regulieres et j'ai un peu galéré comme toi au debut.

    bonne chance

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2009, 08h31
  2. [RegEx] Pb de syntaxe d'expression régulière
    Par renaudjuif dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 20h52
  3. A propos des expressions régulières
    Par cladsam dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 03/07/2006, 10h24
  4. Réponses: 1
    Dernier message: 03/02/2006, 12h35
  5. [RegEx] Traduire des "expression régulières" VBA en PHP
    Par jcachico dans le forum Langage
    Réponses: 13
    Dernier message: 19/01/2006, 14h02

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