|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-01-08 15:13 UTC] rajko at fly dot cc dot fer dot 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. !!
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 06:00:01 2025 UTC |
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 -> BogusRegarding 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. :)