Is it returning everything between that first div and the last </div> on the
page?  If so, it's being 'greedy'.  Basically that .+? is matching
everything (including interior </div>'s).  You can use the 'Ungreedy'
modifier 'U' (captial u after the final slash) or make your regex between
the divs more specific.  Something like ([^<]+) (anything that's not a left
angle bracket) can be ok if you don't expect the left angle bracket to be in
your subject.

manual for modifiers:
http://us3.php.net/manual/en/reference.pcre.pattern.modifiers.php

And Mr. Merlo's suggestion about quotes (strange that it doesn't throw an
error without them, no?)

Mark

On 11/28/06, Chris Merlo <[EMAIL PROTECTED]> wrote:

On 11/28/06, Anthony Papillion <[EMAIL PROTECTED]> wrote:
>
>  Hello Everyone,
>
> I am using the following regex to retrieve text between two <div> tags.
>
> $trans_text = preg_match(/<div id=result_box dir=ltr>(.+?)</div>/);
>

Don't you need to surround the pattern in quotes?  I always have.
-c

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php


_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to