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 :

Supprimer une sous-chaine [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Supprimer une sous-chaine
    Bonjour,

    Je m'arrache les cheveux sur cette expression régulière (et sur la plupart des expressions régulières d'ailleurs) :

    j'ai ma chaine :
    "quelquechose+1534+1564+chaine+chaine"

    je souhaite ne conserver que la partie "quelquechose", c'est a dire supprimer systématiquement ce qui se trouve après le PREMIER '+'

    Une idée?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    T'es vraiment obligé de passer par une regex ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr( $machaine , 0 , strpos( $machaine , "+" ) );
    Répondrait au problème tel que tu le présentes.

  3. #3
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    sinon en conservant aussi les autres termes pour d'autres utilisations tu as la méthode split:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = split('+', $maChaine);
     
    echo $var[0]; // quelquechose

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 895
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 895
    Points : 16 358
    Points
    16 358
    Par défaut
    Citation Envoyé par </noob> Voir le message
    sinon en conservant aussi les autres termes pour d'autres utilisations tu as la méthode split
    Mouais, si ce n'est que pour mettre un "+" dans l'expression, autant utiliser explode().
    Mais la méthode de Petibidon reste la meilleure.

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    La méthode de petitbidon sera sûrement la plus performant, mais pour la culture générale, on peut faire ça en regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $reg = '/([^+]*)\+.*/';
    $str = 'quelquechose+1534+1564+chaine+chaine';
    print preg_replace($reg, '$1', $str);

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci petibidon, effectivement, ta méthode marche au poil, sans se casser la tête avec ces horribles expression regulières.

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

Discussions similaires

  1. REGEX supprimer un caractère dans une sous chaine
    Par taha_g dans le forum Langage
    Réponses: 12
    Dernier message: 27/07/2015, 15h43
  2. Supprimer une sous chaine
    Par Thiago_Cruden dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 27/06/2012, 17h30
  3. [PHP 5.3] Supprimer une sous chaine dans une chaine de caractères
    Par Nemesis007 dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2010, 09h23
  4. Supprimer une sous chaine dans une chaine
    Par devkaty dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/07/2009, 10h24
  5. Rechercher une sous chaine dans une chaine
    Par Oluha dans le forum ASP
    Réponses: 4
    Dernier message: 03/02/2005, 14h39

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