Andrey,
Thanks for the time that you put into this!
After some tweaking (for my scripts) I got this working nicely, and learned
a thing or two about PREG also.
Ross Nielsen
[EMAIL PROTECTED]
"Andrey Hristov" <[EMAIL PROTECTED]> wrote in message
02d801c12f2e$c1a60a90$0b01a8c0@ANDreY">news:02d801c12f2e$c1a60a90$0b01a8c0@ANDreY...
> Some time spent to try but now i think it works:
>
> <?php
> echo "<pre>";
> $a='datadatadatadata[link1]datadatadata{link2}data[link3]';
> // $a='datadata{link1}data[link2]datadatadata{link3}data[link4]';
> $pattern='/((\[)|\{)(.+?)(?(2)\]|\})/';
> echo $a."\n";
> echo $pattern."\n";
> preg_match_all($pattern,$a,$matches,PREG_MATCH_ORDER);
> var_dump($matches);
> ?>
>
> Produces :
> <pre>datadatadatadata[link1]datadatadata{link2}data[link3]
> /(\[)|\{(.+?)(?(1)\]|\})/
> array(3) {
> [0]=>
> array(3) {
> [0]=>
> string(1) "["
> [1]=>
> string(7) "{link2}"
> [2]=>
> string(1) "["
> }
> [1]=>
> array(3) {
> [0]=>
> string(1) "["
> [1]=>
> string(0) ""
> [2]=>
> string(1) "["
> }
> [2]=>
> array(1) {
> [0]=>
> string(5) "link2"
> }
> }
>
> Also works with the commented string.
> Explanation : Looking for more than one using preg_match_all. Matching for
[ or {, [ is in () because at the end we test if we found
> [ so we look for ] otherwise { is found so we look for matching }. (?(1)
true|false) is 1 as a backreference is set so we found [.
>
> Hope this will help you.
>
> Andrey Hristov
> IcyGEN Corporation
> http://www.icygen.com
> 99%
>
>
> ----- Original Message -----
> From: "Ross Nielsen" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, August 27, 2001 9:42 PM
> Subject: [PHP] Regular Expression Problem and PHP 4 (urgent) --- continued
>
>
> > Well my first solution didn't really work the way I needed it too so
here
> > goes again...
> >
> > Data returned from server process looks like following...
> >
> > Header
> > datadatadatadata[link]datadatadata{link}data[link]
> > datadata{link}data[link]datadatadata{link}data[link]
> > datadatadatadata[link]datadatadata{link}data[link]
> > Closer
> >
> > I need to grep the values between [] and {} to turn them into a links.
> > (BTW I need to retain the values for use in JS)
> > Any suggestions?
> >
> > Thanks,
> > Ross
> >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
> >
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]