Partage
  • Partager sur Facebook
  • Partager sur Twitter

Regex

ounet

    5 avril 2006 à 20:00:06

    Salut

    J'ai un petit problème avec ma regex :euh: Voici le code:

    $contenu = preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $contenu);


    Ca c'est le code que nous a donné M@téo dans son tuto. Maintenant j'aimerais ajouter un truc. Je voudrais qu'il remplace les urls lorsqu' il n'y a PAS de "[url=" avant le http://.

    J'ai donc ce code au final:

    $contenu = preg_replace('!(^\[url=)http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $contenu);


    Et ça ne marche pas... (j'ai ajouté (^\[url=) avant http://)

    Où est l'erreur? :)

    Merci bien.
    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2006 à 20:14:55

      Il faut utiliser une assertion arrière négative...

      Regarde ici au paragraphe assertion.

      ça donnera raison à Bison

      Citation : signature de Bison

      ne pas utiliser de ! comme délimiteur

      • Partager sur Facebook
      • Partager sur Twitter
        5 avril 2006 à 20:23:47

        Pas forcément besoin d'une assertion ;)
        Il y a assez d'exemples sur le lien que j'ai donné pour faire deux regex correctes sans la moindre assertion.
        D'autant plus que http sans [url=""] cela veut dire une url dans le texte... donc pas de [/url] pour finir non plus ! :-°
        • Partager sur Facebook
        • Partager sur Twitter

        Regex

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown