#41077 [Bgs->Opn]: Order may matter between brackets

From: Date: Wed, 09 May 2007 05:02:55 +0000
Subject: #41077 [Bgs->Opn]: Order may matter between brackets
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-112428@lists.php.net to get a copy of this message
ID: 41077 User updated by: aeolianmeson at blitzeclipse dot com Reported By: aeolianmeson at blitzeclipse dot com -Status: Bogus +Status: Open Bug Type: *Regular Expressions Operating System: 2000 Server -PHP Version: 5.2.1 +PHP Version: 5.1.2 New Comment: I'm not exactly sure what you're referring to. I can use the exact same pattern with preg successfully. Can you confirm, or provide me a specific URL to clarify your explanation? Consider the following, where preg returns true and ereg returns false: $strEmail = "abc@def-.com"; $strReg = "^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$"; var_dump(eregi($strReg, $strEmail)); $strReg = "/^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$/i"; var_dump(preg_match($strReg, $strEmail)); Thanks :) . Dustin Oprea Previous Comments: ------------------------------------------------------------------------ [2007-04-13 16:25:25] johannes@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php Read about strings with double quotes. The \\ won\'t be seen by the regexp engine. ------------------------------------------------------------------------ [2007-04-13 15:07:41] aeolianmeson at blitzeclipse dot com Description: ------------ I needed to add a dash to a character class, so I appended it to the present character class definition. It turns out that it wouldn't accept unless I moved it to the middle. Reproduce code: --------------- // This works. // $reg = "^[[:alnum:]_\.\-]+@[[:alnum:]_\.\-]+$"; // This does not work. The only difference // is the order of the last two accepted // characters in the first character class. $reg = "^[a-z0-9_\-\.]+@[[:alnum:]_\.\-]+$"; var_dump(ereg($reg, 'ab-c@def.com')); Expected result: ---------------- Does match. Actual result: -------------- Does not match. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41077&edit=1

« previous php.bugs (#112428) next »