我試圖做一個preg-replace模式來將文本「orderId」轉換爲「order-id」。Preg替換PHP的模式
$argumentName = "orderId";
$argumentName = preg_replace("/([A-Z])/e", "-strtolower($1)", $argumentName);
echo $argumentName;
該行的輸出是「order0d」。爲什麼這不起作用?
我試圖做一個preg-replace模式來將文本「orderId」轉換爲「order-id」。Preg替換PHP的模式
$argumentName = "orderId";
$argumentName = preg_replace("/([A-Z])/e", "-strtolower($1)", $argumentName);
echo $argumentName;
該行的輸出是「order0d」。爲什麼這不起作用?
爲什麼要使用/e
?
$argumentName = strtolower(preg_replace("/([A-Z])/", "-$1", $argumentName));
這會在任何大寫字母前放置一個破折號,然後降低整個字符串。
我真的不知道你的正則表達式如何與你的文本相關。這是你正在尋找的唯一情況嗎?如果是這樣的話,一些簡單的字符串操作就足夠了 – FailedDev 2012-03-11 12:57:29
'-'是[算術運算符](http://php.net/language.operators.arithmetic),'strtolower'是一個返回字符串的函數。你應該能夠弄清楚其餘的。 – Gumbo 2012-03-11 13:01:05
使用這樣的正則表達式對我來說仍然沒有意義。整個事情可以通過搜索我來代替,用-i替換。 – FailedDev 2012-03-11 13:14:00