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 :

Regexp qui supprime une partie d'une chaine [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Regexp qui supprime une partie d'une chaine
    Bonjour,

    Ill faudrait que je recupere : dans la chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cn=test,ou=france,dc=example
    sachant que "test" est amené à changer.

    Merci d'avance,

    Je continue de lire des cours de regexp en attendant

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Tu peux utiliser un joker à la place de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cn=(.*),<chaine à extraire>

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    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 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pas besoin d'expression régulière pour ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $b = 'test';
    $a = 'cn=' . $b . ',ou=france,dc=example';
     
    echo substr( $a, strpos( $a, $b ) + strlen( $b ) + 1 );

  4. #4
    Membre actif 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
    Points : 223
    Points
    223
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Pas besoin d'expression régulière pour ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $b = 'test';
    $a = 'cn=' . $b . ',ou=france,dc=example';
     
    echo substr( $a, strpos( $a, $b ) + strlen( $b ) + 1 );
    C'est vrai mais si on sais pas que $b correspond à test ca marche plus...

    Ceci doit aussi fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $str = 'cn=test,ou=france,dc=example';
    preg_match('#[^,],(.*)#',$str,$result);
    print_r($result[1]);

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    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 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par blobus Voir le message
    C'est vrai mais si on sais pas que $b correspond à test ca marche plus...
    Sauf que dans son énoncé il est pas dit qu'il est inconnu, juste amené à changer. Donc on peut en déduire qu'il est connu.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Désolé mais j'ai du mal m'exprimer :

    dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cn=test,ou=france,dc=example
    Je souhaite recuperer la partie apres la premiere virgule : ou=france,dc=example
    Cette partie est amener à changer aussi (ou=allemangne,dc=example). C'est pour ça que je demandais une expression regulière. Apres si cest faisable sans , pourquoi pas

    Merci d'avance,

    Je continue à chercher de mon coté .

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    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 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Encore plus simple dans ce cas là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a = 'cn=test,ou=france,dc=example';
     
    echo substr( $a, strpos( $a, ',' ) + 1 );

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci bien !

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Et vu comme cest facile pour toi tu pourrais m'aider sur :

    Je voudrais supprimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ou=adressbook,dc=examplel,dc=com
    de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = ou=france,ou=adressbook,dc=example,dc=com
    donc j'ai essayé de remplacer cette portion par rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $string = ou=france,ou=adressbook,dc=example,dc=com;
    preg_replace('#^,ou=adressbook,dc=example,dc=com$#', '', $string);
    J'ai encore du mal xD

    EDIT : ok j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('/,ou=adressbook,dc=example,dc=com/', '', $string);

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    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 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pareil, dans ce cas là l'utilisation de preg_* est inutile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace(',ou=adressbook,dc=example,dc=com', '', $string);
    Si le texte n'est pas amené à change, ça peut marcher, si tu veux supprimer tout ce qu'il y a après la première virgule, le code est presque similaire à celui que je propose dans mon message précédent, à coup de substr et de strpos.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2013, 15h57
  2. [RegEx] Retourner une array sur une partie de la chaine
    Par absurdsystem dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2010, 16h03
  3. Sélectionner seulement une partie d'une valeur d'une cellule
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 11h05
  4. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

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