|
Posted by Jochem Maas on 09/26/05 17:44
Jake was fast ;-) and he is on the right track too
(although I don't think that the substrings he guessed are
the exact ones that are found).
you might want to check preg_match_all to see the matches
that PCRE comes up with for each regexp...
also take a look at:
$test = "7005-N/52";
var_dump(
preg_match("/([0-9]*)\/(.*)/i", $test),
preg_match("/([0-9]*)\-(.*)/i", $test),
preg_match("/^([0-9]*)\/(.*)$/i", $test),
preg_match("/^([0-9]*)\-(.*)$/i", $test)
);
Jake Gardner wrote:
> When using "/([0-9]*)(.*)/i" it matches
> substring 1: 7005
> substring 2: -N/52
>
> When using "/([0-9]*)\/(.*)/i" it matches
> substring 1:
> substring 2: 52
>
> It looks to me as though its trying to match either or subgroup in order.
>
> On 9/26/05, Jens Schulze <jens@trickbetrueger.org> wrote:
>
>>I recently encountered a strange behaviour, could someone please
>>countercheck it, to either tell me there is an error in my pattern?
>>
>>I have a test string: "7005-N/52"
>>I have two match patterns: a) "/([0-9]*)\/(.*)/i"
>> b) "/([0-9]*)\-(.*)/i"
>>I check the test string with the help of preg_match, and they both
>>matched, but normally variant a) shouldn't have matched.
>>
>>Normally I test my patterns with the tool "The Regex Coach", and
>>according to this tool it shouldn't have matched.
>>PHP version is 5.0.4, PCRE extension version is 4.5 01-December-2003
>>
>>Thanks for any help or feedback,
>>Jens
>>
>>--
>>PHP General Mailing List (http://www.php.net/)
>>To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
>
[Back to original message]
|