Re: PCRE false match with preg_match?

From: Date: Mon, 26 Sep 2005 14:44:58 +0000
Subject: Re: PCRE false match with preg_match?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-223191@lists.php.net to get a copy of this message
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


« previous php.general (#223191) next »