preg_replace()
正在爲以下代碼行返回空字符串。目標是用連字符代替任何不是數字的東西。通過在線測試人員,我相信正則表達式捕獲正確的東西,但由於某種原因,這行總是返回一個空字符串。preg_replace()返回空字符串
preg_last_error()
返回無錯誤。有什麼建議麼?
$subRef = preg_replace("/[^(\d)]/g", "-", $subRef);
preg_replace()
正在爲以下代碼行返回空字符串。目標是用連字符代替任何不是數字的東西。通過在線測試人員,我相信正則表達式捕獲正確的東西,但由於某種原因,這行總是返回一個空字符串。preg_replace()返回空字符串
preg_last_error()
返回無錯誤。有什麼建議麼?
$subRef = preg_replace("/[^(\d)]/g", "-", $subRef);
嘗試
preg_replace('/\D/', '-', $subRef);
代替。 \D
是「不是一個數字」
php > $foo = 'abc123def';
php > echo preg_replace('/\D/', '-', $foo);
---123---
謝謝,沒有意識到\ D,這是一個更乾淨的方式來做我正在做的事情。這是g-modifier引起的問題。不管怎麼說,乾杯! – Chris
啓用'error_reporting(E_ALL);'。它會告訴你你的regex說明符有什麼問題。 – mario
subRef的價值是什麼? – Kieran
在PHP中使用preg \ _match時可能出現[「Unknown modifier'g'in ...」)重複項(http://stackoverflow.com/questions/3578671/unknown-modifier-g-in-when-using- preg-match-in-php) – mario