Partage
  • Partager sur Facebook
  • Partager sur Twitter

Deux regex qui ne marchent pas.

Pourquoi?

    24 février 2006 à 12:36:57

    Je viens de me mettre au regex pour faire, entre autres du bbcode sur mon site

    Mais apparemment j'ai pas bien compris(en ayant bien lu le cours) le remplacement un peu complexes du type :
    [url=adressedulien]nom du lien[/url] et [size=taille du texte]texte a agrandir ou réduire[/size]

    Voici mes deux regex(toutes les autres fonctionnent) :
        $contenu = preg_replace('!\[size=([0-3],[0-9]em|[1-3][0-9]px|xx-small|small|medium|
    large|x-large|xx-large)\](.+)\[/color\]!isU'
    , '<span style="font-size : $1 ;">$2</span>', $contenu);
        $contenu = preg_replace('!\[url=([a-z0-9._/&=@#-]+)\](.+)\[/url\]!i', '<a href="$1">$2</a>', $contenu);


    J'ai rajouté des "entrée" dans ma première regex pour l'étaler sur 2lignes(sinon ça coupe).


    Alors, quelle erreur ai-je fais?(encore^^).

    EDIT : je crois que je viens de comprendre : on ne peut pas faire une regex qui transforme les adreesse commençant par http:// en lien ET la gexex que j'ai mise plus haut.

    Je pense que c'est ça car ça ne marche pas non plus avec ma regex image. Voici la regex image et celle que transforme automatiquement en lien :
        $contenu = preg_replace('!http://[a-z0-9._/&=@#-]+!i', '<a href="$0">$0</a>', $contenu);
        $contenu = preg_replace('!\[img\]([a-z0-9._/&=@#-]+)\[/img\]!i', '<img src="$1" />', $contenu);

    Je vais réessayer en supprimant la regex qui transforme les "http://", mais il n'y à pas un moyen de garder les 2 types de regex?

    EDIT 2: Non, apparement ça marche pas mieux. Donc ça veux dire que ça vien de la syntaxe de mes regex.

    Aucunes de celles que j'ai cité(apart celle qui met les url en lien(sans nom)) ne fonctionnent.
    J'aurais besoin d'un sacré coup de main.
    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      24 février 2006 à 13:25:23

      Citation : Silke

      Voici mes deux regex(toutes les autres fonctionnent) :

          $contenu = preg_replace('!\[size=([0-3],[0-9]em|[1-3][0-9]px|xx-small|small|medium|
      large|x-large|xx-large)\](.+)\[/color\]!isU'
      , '<span style="font-size : $1 ;">$2</span>', $contenu);

      Pour la taille, faut m'expliquer ceci : \[/color\] :-°
      • Partager sur Facebook
      • Partager sur Twitter
        24 février 2006 à 16:17:11

        size=([0-3],[0-9]


        Ca serait pas la virgule ici qui dérange ?
        • Partager sur Facebook
        • Partager sur Twitter
          24 février 2006 à 17:32:31

          Citation : jaye

          Citation : Silke

          Voici mes deux regex(toutes les autres fonctionnent) :

              $contenu = preg_replace('!\[size=([0-3],[0-9]em|[1-3][0-9]px|xx-small|small|medium|
          large|x-large|xx-large)\](.+)\[/color\]!isU'
          , '<span style="font-size : $1 ;">$2</span>', $contenu);


          Pour la taille, faut m'expliquer ceci : \[/color\] :-°


          Hum... Pardon? Ca ça serait pas plutôt la balise couleur(comme son nom l'indique.
          Et puis après tout la balise on s'en moque jorais bien pu mettre !taille! !/taille!
          Le problème n'est pas là, il est ailleur dans ma regex.

          Quelqu'un sait?

          Pour la virgule, elle m'est indispenssable, je veux quelque chose du type "1.9em", pas "19em"(vraiment trop gros!!!!)

          Jaye : Pour ma regex color elle est comme ça :
              $contenu = preg_replace('!\[color=(white|silver|gray|black|red|maroon|lime|green|
          yellow|olive|blue|navy|fuchsia|purple|aqua|teal)\](.+)\[/color\]!isU'
          , '<span style="color:$1 ;">$2</span>', $contenu);

          Mais elle marche donc ce n'est pas le problème.
          • Partager sur Facebook
          • Partager sur Twitter
            25 février 2006 à 12:31:05

            Il n'y a donc personne qui sait se servir des regex sur ce site.
            J'ai essayer 2-3 truc mais sans succès.

            Personne peut m'aider?

            • Partager sur Facebook
            • Partager sur Twitter
              25 février 2006 à 15:56:42

              Citation : Silke

              Il n'y a donc personne qui sait se servir des regex sur ce site.



              Non, personne ! :-°
              • Partager sur Facebook
              • Partager sur Twitter
                25 février 2006 à 18:26:46

                Merci pour l'adresse Bison^^

                J'ai réussi à coriger deux de mes regex en les simplifiant(j'accepte tous types de caractère (.+) donc plus de crochets foireux du genre ([a-z][0-9]ù*$_-)

                Par contre ma regex pour le [size][/size] foire toujours.
                    $contenu = preg_replace('!\[size=([0-3],[0-9]em|[1-3][0-9]px|xx-small|small|medium|large|x-large|xx-large)\](.+)\[/color\]!isU', '<span style="font-size : $1 ;">$2</span>', $contenu)




                • Partager sur Facebook
                • Partager sur Twitter

                Deux regex qui ne marchent pas.

                × 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