下返回true:轉義字符在PHP
$bool1 = preg_match("/5/", "Your bill is $5.00 dude");
var_dump($bool1);
我想到這一點,因爲 '5' 是string.But以下返回false:
$bool1 = preg_match("/\$5\./", "Your bill is $5.00 dude");
var_dump($bool1);
我想我正確地轉義了$
,這樣它會在字符串中查找$5
並找到它,但沒有。有人可以解釋嗎?謝謝。
preg_quote()可用於在正則表達式轉義特殊字符;但是用單引號而不是雙引號包裝正則表達式,否則在傳遞給正則表達式解析器之前,PHP會自行進行一些轉義:'$ bool1 = preg_match('/ \ $ 5 \ ./',「您的賬單是$ 5.00花花公子「);' –
值得注意的是,preg_quote只是做了他手動的操作。這不是他問題的根源。編輯:在這裏留下我的評論,但最初大家只是說「只是使用preg_quote」,它並沒有回答這個問題。 – Mike
@Mike _almost_。 preg_quote會返回''\ $'',他使用'「\ $」':) – JimiDini