regular expression : {link}

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • gehegeradeaus@gmail.com

    regular expression : {link}

    Can someone help me to make a regular expression for this sort of
    replacement :

    text with {link:pagehref} a link{/link}.

    replace to ->

    text with <a href="pagehref" >a link</a>

    I tried several things but nothing seems to work... e.g.

    $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
    target=\"_blank \">$2</a>",$value);

    Thanks in advance!

  • mutale82@gmail.com

    #2
    Re: regular expression : {link}


    gehegeradeaus@g mail.com wrote:
    Can someone help me to make a regular expression for this sort of
    replacement :
    >
    text with {link:pagehref} a link{/link}.
    >
    replace to ->
    >
    text with <a href="pagehref" >a link</a>
    >
    I tried several things but nothing seems to work... e.g.
    >
    $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
    target=\"_blank \">$2</a>",$value);
    >
    Thanks in advance!
    try to use str_replace() instead...
    see it here: http://de.php.net/str_replace

    Comment

    • Ac1d^

      #3
      Re: regular expression : {link}

      gehegeradeaus@g mail.com napisal(a):
      Can someone help me to make a regular expression for this sort of
      replacement :
      >
      text with {link:pagehref} a link{/link}.
      >
      replace to ->
      >
      text with <a href="pagehref" >a link</a>
      >
      I tried several things but nothing seems to work... e.g.
      >
      $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
      target=\"_blank \">$2</a>",$value);
      >
      Thanks in advance!
      Try this pattern.
      "/\{link\:(.*)\}( .*)\{\/link\}\s/"
      rest of the code looks fine.

      You can also have a look at the comments below preg-replace Description
      at www.php.net. There is a lot of usefull informations how to use it,



      Comment

      • Kimmo Laine

        #4
        Re: regular expression : {link}

        "Ac1d^" <adam82s@gmail. comwrote in message
        news:1158054059 .855759.172420@ i42g2000cwa.goo glegroups.com.. .
        gehegeradeaus@g mail.com napisal(a):
        >Can someone help me to make a regular expression for this sort of
        >replacement :
        >>
        >text with {link:pagehref} a link{/link}.
        >>
        >replace to ->
        >>
        >text with <a href="pagehref" >a link</a>
        >>
        >I tried several things but nothing seems to work... e.g.
        >>
        >$value=preg_re place("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
        >target=\"_blan k\">$2</a>",$value);
        >>
        >Thanks in advance!
        >
        Try this pattern.
        "/\{link\:(.*)\}( .*)\{\/link\}\s/"
        rest of the code looks fine.

        The problem is that {link:(.*)} matches to the entire "{link:pagehref }a
        link{/link}", it reaches the last occurance of } untill stops. Instead of .*
        the pattern should be (^})* ie. match anything but }, then it should stop at
        the first } which closes the {link} pseudotag.
        something like:

        "/\{link\:((^})*) \}(^{*)\{\/link\}\s/"


        --
        "Ohjelmoija on organismi joka muuttaa kofeiinia koodiksi" - lpk
        http://outolempi.net/ahdistus/ - Satunnaisesti päivittyvä nettisarjis
        spam@outolempi. net || Gedoon-S @ IRCnet || rot13(xvzzb@bhg byrzcv.arg)


        Comment

        • gehegeradeaus@gmail.com

          #5
          Re: regular expression : {link}


          Kimmo Laine schreef:
          "Ac1d^" <adam82s@gmail. comwrote in message
          news:1158054059 .855759.172420@ i42g2000cwa.goo glegroups.com.. .
          gehegeradeaus@g mail.com napisal(a):
          Can someone help me to make a regular expression for this sort of
          replacement :
          >
          text with {link:pagehref} a link{/link}.
          >
          replace to ->
          >
          text with <a href="pagehref" >a link</a>
          >
          I tried several things but nothing seems to work... e.g.
          >
          $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
          target=\"_blank \">$2</a>",$value);
          >
          Thanks in advance!
          Try this pattern.
          "/\{link\:(.*)\}( .*)\{\/link\}\s/"
          rest of the code looks fine.
          >
          >
          The problem is that {link:(.*)} matches to the entire "{link:pagehref }a
          link{/link}", it reaches the last occurance of } untill stops. Instead of .*
          the pattern should be (^})* ie. match anything but }, then it should stop at
          the first } which closes the {link} pseudotag.
          something like:
          >
          "/\{link\:((^})*) \}(^{*)\{\/link\}\s/"
          >
          >
          --
          Unfortunately still nothing, I tried both of the solutions above... but
          the replacement doesn't work :

          http://cmdstud.khlim.be/~bbrughmans/tmp.phps and


          Comment

          • gehegeradeaus@gmail.com

            #6
            Re: regular expression : {link}


            mutale82@gmail. com schreef:
            gehegeradeaus@g mail.com wrote:
            Can someone help me to make a regular expression for this sort of
            replacement :

            text with {link:pagehref} a link{/link}.

            replace to ->

            text with <a href="pagehref" >a link</a>

            I tried several things but nothing seems to work... e.g.

            $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a href=\"$1\"
            target=\"_blank \">$2</a>",$value);

            Thanks in advance!
            >
            try to use str_replace() instead...
            see it here: http://de.php.net/str_replace
            I don't think I can use str_replace in this case, because it is a
            dynamic tag.

            Comment

            • Kimmo Laine

              #7
              Re: regular expression : {link}

              <gehegeradeaus@ gmail.comwrote in message
              news:1158060714 .858365.181920@ i3g2000cwc.goog legroups.com...
              >
              Kimmo Laine schreef:
              >
              >"Ac1d^" <adam82s@gmail. comwrote in message
              >news:115805405 9.855759.172420 @i42g2000cwa.go oglegroups.com. ..
              gehegeradeaus@g mail.com napisal(a):
              >Can someone help me to make a regular expression for this sort of
              >replacement :
              >>
              >text with {link:pagehref} a link{/link}.
              >>
              >replace to ->
              >>
              >text with <a href="pagehref" >a link</a>
              >>
              >I tried several things but nothing seems to work... e.g.
              >>
              >$value=preg_re place("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a
              >href=\"$1\"
              >target=\"_blan k\">$2</a>",$value);
              >>
              >Thanks in advance!
              >
              Try this pattern.
              "/\{link\:(.*)\}( .*)\{\/link\}\s/"
              rest of the code looks fine.
              >>
              >>
              >The problem is that {link:(.*)} matches to the entire "{link:pagehref }a
              >link{/link}", it reaches the last occurance of } untill stops. Instead of
              >.*
              >the pattern should be (^})* ie. match anything but }, then it should stop
              >at
              >the first } which closes the {link} pseudotag.
              >something like:
              >>
              >"/\{link\:((^})*) \}(^{*)\{\/link\}\s/"
              >>
              >>
              >--
              >
              Unfortunately still nothing, I tried both of the solutions above... but
              the replacement doesn't work
              I tried this with preg_match:

              /{link:([^}]*)}([^{]*){\/link}/

              result:
              Array (
              [0] ={link:pagehref }a link{/link}
              [1] =pagehref
              [2] =a link
              )

              That should do it... modify it to suit your needs

              --
              "Ohjelmoija on organismi joka muuttaa kofeiinia koodiksi" - lpk
              http://outolempi.net/ahdistus/ - Satunnaisesti päivittyvä nettisarjis
              spam@outolempi. net || Gedoon-S @ IRCnet || rot13(xvzzb@bhg byrzcv.arg)


              Comment

              • gehegeradeaus@gmail.com

                #8
                Re: regular expression : {link}


                Kimmo Laine schreef:
                <gehegeradeaus@ gmail.comwrote in message
                news:1158060714 .858365.181920@ i3g2000cwc.goog legroups.com...

                Kimmo Laine schreef:
                "Ac1d^" <adam82s@gmail. comwrote in message
                news:1158054059 .855759.172420@ i42g2000cwa.goo glegroups.com.. .
                gehegeradeaus@g mail.com napisal(a):
                Can someone help me to make a regular expression for this sort of
                replacement :
                >
                text with {link:pagehref} a link{/link}.
                >
                replace to ->
                >
                text with <a href="pagehref" >a link</a>
                >
                I tried several things but nothing seems to work... e.g.
                >
                $value=preg_rep lace("/\{link\:(.+?)\} (.+?)\{\/link\}/s","<a
                href=\"$1\"
                target=\"_blank \">$2</a>",$value);
                >
                Thanks in advance!

                Try this pattern.
                "/\{link\:(.*)\}( .*)\{\/link\}\s/"
                rest of the code looks fine.
                >
                >
                The problem is that {link:(.*)} matches to the entire "{link:pagehref }a
                link{/link}", it reaches the last occurance of } untill stops. Instead of
                .*
                the pattern should be (^})* ie. match anything but }, then it should stop
                at
                the first } which closes the {link} pseudotag.
                something like:
                >
                "/\{link\:((^})*) \}(^{*)\{\/link\}\s/"
                >
                >
                --
                Unfortunately still nothing, I tried both of the solutions above... but
                the replacement doesn't work
                >
                I tried this with preg_match:
                >
                /{link:([^}]*)}([^{]*){\/link}/
                >
                result:
                Array (
                [0] ={link:pagehref }a link{/link}
                [1] =pagehref
                [2] =a link
                )
                >
                That should do it... modify it to suit your needs
                >
                --

                thanks, it does work now :)

                Comment

                Working...