Re: preg_match() is returning inaccurate result
| From: | Jigar Dhulla | 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