Re: preg_match() is returning inaccurate result

From: Date: Tue, 23 Apr 2024 05:02:22 +0000
Subject: Re: preg_match() is returning inaccurate result
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-328402@lists.php.net to get a copy of this message
On Tue, Apr 23, 2024 at 8:02 AM <0xabeef@riseup.net> wrote: > PHP8.3.4 > > Can someone help? preg_match() is acting weird about \$ and \^. > > var_dump(preg_match("/\$third-party$/",'xyz$third-party')?true:false);// > returns FALSE, really expecting TRUE here! > var_dump(preg_match("/$third-party$/",'xyz$third-party')?true:false);// > returns TRUE??? > > ^ and $ must escape if it is not in beginning/ending position. > Isn't this correct? > > At least Javascript is answering correctly. > > /\$third-party$/.test('xyz$third-party'); // TRUE > /$third-party$/.test('xyz$third-party'); // FALSE > Hi, double quotes ("") around a string are evaluating $third as a variable in the first argument. Use single quotes ('') instead. var_dump(preg_match('/\$third-party$/','xyz$third-party')?true:false); var_dump(preg_match('/$third-party$/','xyz$third-party')?true:false); Playground: https://onlinephp.io/c/52068

« previous php.general (#328402) next »