Bug #14933 Updated: regular expression problem

From: Date: Thu, 10 Jan 2002 13:06:29 +0000
Subject: Bug #14933 Updated: regular expression problem
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-76479@lists.php.net to get a copy of this message
ID: 14933 User updated by: rajko@fly.cc.fer.hr Reported By: rajko@fly.cc.fer.hr Status: Bogus Bug Type: Documentation problem Operating System: Win ME PHP Version: 4.1.1 New Comment: Regarding this reply I just want to make clear what was not working at my comp. here is code which I used : <?php echo "*** POSIX<BR>\n"; if (eregi("<T>([\da-z\ ]{1,})", "<T>qw e1 asd!zxc", $out)) { echo "found=".count($out)."<BR>\n"; foreach($out as $val) { echo "=$val<BR>\n"; } } echo "<BR>*** PERL<BR>\n"; if (preg_match("/<T>([\d\ a-z]{1,})!([\w]+)/", "<T>qw e1 asd!zxc", $out)) { echo "found=".count($out)."<BR>\n"; foreach($out as $val) { echo "=$val<BR>\n"; } } ?> and output in my browses was: *** POSIX found=10 =qw e =qw e = = = = = = = = *** PERL found=3 =qw e1 asd!zxc =qw e1 asd =zxc See, there is difference even if match is found, but \d is not the same as in perl. And I don't know what \d does in POSIX(probeable nothing)? (Still checking documentation). :) PS Just trying to help. :) Previous Comments: ------------------------------------------------------------------------ [2002-01-10 07:19:18] rajko@fly.cc.fer.hr 'Bug' withdrawn. I mixed up perl & posix? :( SORRY. ------------------------------------------------------------------------ [2002-01-08 15:28:25] irc-html@php.net The document is correct on this issue, those character types may be used. I've tested your code as: if (ereg('<T>([\da-z]{1,})', '<T>try8')) { echo 'match'; } Which, works just fine on win32 platforms, 4.1.1. You may want to ensure there is no whitespace in the string you are testing. Status -> Bogus ------------------------------------------------------------------------ [2002-01-08 15:13:08] rajko@fly.cc.fer.hr Documentation quote: The character types \d, \D, \s, \S, \w, and \W may also appear in a character class, and add the characters that they match to the class. So, I tried to match "<T>try8" with "<T>([\da-z]{1,})" and it won't work. vs "<T>([\da-z8]{1,})" work. !! ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=14933&edit=1

« previous php.dev (#76479) next »