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 :

Regex simple qui ne fonctionne pas [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Par défaut Regex simple qui ne fonctionne pas
    Bonsoir,

    Décidement je suis nul en regex. Cela fait plus d'une heure que je me bat pour faire un petit bout de code mais je n'y arrive pas à cause du fait qu'il faut utiliser ces ~#¤€%µ£¨%§ de Regex.
    Mon problème est le suivant :
    Je désirerais supprimer tout ce qui se trouve avant /en/ dans une url, j'ai mis ce code mais ça ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $url = "http://www.monsite.com/test/en/page.htm";
    $chaine = '|(.*?)/en/|i';
    $test = preg_replace($chaine,'$1',$url);
    echo $test;
    ?>
    Ce qui me donne comme résultat l'url nettoyée du "/en/" mais pas de ce qui se trouve après.
    Avez vous une idée ?

    Merci.

  2. #2
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chaine = '|(.*?)/en/|i';
    $test = preg_replace($chaine,'$1',$url);
    $1 correspond a ton premier groupe de parenthèse, donc bah preg_replace t'a renvoyé tout ce qu'il a trouvé avant /en/.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $url = "http://www.monsite.com/test/en/page.htm";
    $chaine = '|.*?(/en/.*)|i';
    $test = preg_replace($chaine,'$1',$url);
    echo $test;
    ?>

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Par défaut
    Citation Envoyé par TiEuAM Voir le message
    $1 correspond a ton premier groupe de parenthèse, donc bah preg_replace t'a renvoyé tout ce qu'il a trouvé avant /en/.
    C'est justement ce que cherche à faire, càd renvoyer tous ce qui se trouve avant /en/ mais ma première regex ne le faisait pas.
    sinon pour la regex que vous m'avez envoyée elle fait l'inverse de ce que je veux faire, càd elle renvoie "/en/" et se qui se trouve après.

    Je pourrait toujours faire un preg_replace et supprimer "/en/page.htm" de $url mais j'aimerais plutôt faire tout ça d'une seule traite.

    Merci.

  4. #4
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    Plutot comme ça alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = '|(.*?)/en/.*|i';
    tu avais oublié le .* à la fin.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Par défaut
    Merci pour ton aide, c'est bien ce que je voulais

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/11/2010, 14h25
  2. Une instruction simple qui ne fonctionne pas
    Par Claude_Azoulai dans le forum VB.NET
    Réponses: 3
    Dernier message: 14/02/2010, 17h08
  3. [RegEx] regex simple qui ne marche pas (encore)
    Par denisvignes dans le forum Langage
    Réponses: 5
    Dernier message: 19/09/2008, 15h04
  4. Filtres tout simples qui ne fonctionnent pas
    Par cuterate dans le forum Requêtes et SQL.
    Réponses: 29
    Dernier message: 13/06/2008, 11h08
  5. Programme Perl tout simple qui ne fonctionne pas
    Par jejerome dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2006, 23h58

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