b wrote:
> On 07/29/2009 07:48 PM, Daniel Kolbo wrote:
>> code works (no match) for me too on php 5.2.6 build date May 2 2008
>> 18:01:20 with dumbdows NT.
>> preg_match fails but for a reason other than what I think you may be
>> expecting.  It fails b/c of the first forwards slash in $url.  The regex
>> engine doesn't even get past the second character let alone reaching the
>> end of line anchor.
> The forward slash shouldn't be an issue as the delimiter is '%'. The
> full pattern is:
> %^/foo/?$%U
>> Also, your code works (no match) with this first forward slash removed:
>> $url = 'foo(/)?'
> But the string happens to start with a forward slash.
i am not talking about the delimiter
your pattern is:
your test string is:

the first character of your pattern is a "/" and your first character of
your test string is an "f".  They do not match.  The regex engine stops
after checking the first character.  This has nothing to do with
greediness or end of line anchors, but only with the first character

maybe what you wanted for your test string was

This test string would then require your end of line anchor. Because the
end of line character does not match the "b" the engine stops.  No match.

This is consistent with the findings of others who replied to you.

Perhaps your regex engine has a different syntax for anchors.  For
example if your engine was seeing the carrot as a an exclusion operator
rather than being a beginning of line anchor and it was also, idk,
ignoring the dollar sign as your end of line anchor then you would get a
match.  But otherwise I would recommend you copy/paste the example you
provided and confirm that you still get a match.  Then i would confirm
your regex engine's anchor syntax.  Then, recompile your software....

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to