On Jan 31, 2007, at 4:38 PM, Richard Lynch wrote:
On Tue, January 30, 2007 8:36 pm, jekillen wrote:
I am having trouble with ereg().
The following is the problem code
$x = ereg("<route name='$to' x='../(.*)/in' rec='.*' />", $get_route,
$m);
testing $route I get:
$route = $m[1];
print $route.'<br>';
jk/in' rec='a_378e6dc4.xml' /> (out put of print)
jk is all I am looking for but
is it greed that is missing the
forward slash and the single quote?
No, it's that you put the parens () around only the .* and not around
what you wanted:
ereg("<route name='$to' x='\\.\\.(.*/in') rec='.*' />", ...
It seems like every time I do this I have to monkey around
with it until I get what I want.
Join the club. :-)
You may want to consider a couple actions:
Switch to PCRE http://php.net/pcre
It's better documented, less confusing, faster, and just better all
around.
Download and play around with "The Regex Coach" which provides a
visual feedback on what happens when you change the #$^%& inside your
pattern.
I have even changed the
formatting of files just so a regular expression would
work without this sort of trial and error.
Is there a way I can turn off greed in php's regex?
I haven't used ereg in so long, I can't answer this for ereg.
In PCRE, you use tack on 'U' after your end patter delimiter.
Thanks, I believe I do have pcre in my installation, and that
was my next target for investigation. As I turns out I got a
regex that works, albeit more complicated than (.*). See this
post subject + solution. by me.
thanks for the response.
JK
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php