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 :

Jusqu'à un caractère, sauf s'il est encapsulé. [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut Jusqu'à un caractère, sauf s'il est encapsulé.
    Bonjour à tous !

    J'ai un petit souci;
    J'ai cette chaine de caractère (l'ensemble est une chaine de caractère):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = "salut;je suis la!"; //bla bla bla
    Et je veux que mon expression garde 'var' et 'salut;je suis la!'

    Mais je ne trouve pas comment exclure le ; qui se trouve entre guillemet.

    Merci !

  2. #2
    Membre expérimenté Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Par défaut
    Hello,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $str = '$var = "salut;je suis la!';
    $str = str_replace(';',' ',$str);
    print_r($str);

  3. #3
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Merci de ton aide, cependant, ce n'est pas dutout ce que je cherche à faire. Peut-être n'ai-je pas été assez clair, alors je me permet de ré-expliquer:

    Je cherche une expression régulière qui prendra en compte qu'une chaine de caractère dans un contexte de programmation..

    Je doute que la parseur de PHP, C, Java, alouette utilise ce genre de technique. De plus, la méthode que tu mentionne va modifier le contenu, modifier le second ; qui doit marquer la fin d'une instruction.

    Alors comment ensuite être en mesure de distinguer les instructions si tout les délimiteurs ont été retirés ?


    Je cherche donc une expression régulière pour laquelle le groupe de capture #1 retournera "var" et le groupe de capture #2 retournera "salut;je suis la!"


    Voilà !

  4. #4
    mon_nom_est_personne
    Invité(e)
    Par défaut
    ^([a-zA-Z0-9$\-_]+)[ =]+ (.*);$

    ce genre de truc ?

  5. #5
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Ha oui ! En fait, je remarque dans l'expression qu'en réalité, le point virgule ne pose pas vraiment problème.

    J'ai modifié un peu l'expression pour supporter les indentations et ce genre de chose que l'on met dans nos code:
    ^.*\$([a-zA-Z0-9\[\]\'\"_]+)[ \t\n=]+ (.*);.*$

    Qui match cette chaine:
    $var['salut'] = "salut;je suis \"la\"!"; //bla bla bla

    Où:
    Group1 = var['salut']
    Group2 = "salut;je suis \"la\"!"


    Merci !

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

Discussions similaires

  1. Compter un nom sauf si il est écrit en italique
    Par Le POlonais dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/03/2008, 11h02
  2. Réponses: 7
    Dernier message: 06/06/2007, 15h42
  3. Comment lire jusqu'au caractère CTRL-D EOF ?
    Par AsmCode dans le forum C
    Réponses: 9
    Dernier message: 08/02/2007, 22h27
  4. Réponses: 4
    Dernier message: 10/10/2006, 11h14
  5. [RegEx] Tronquer une chaine de caractère sauf si c'est une URL.
    Par psychoBob dans le forum Langage
    Réponses: 16
    Dernier message: 03/06/2006, 13h01

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