"orderId"というテキストを "order-id"に変換するpreg-replaceパターンを作成しようとしています。Preg置換パターンfor PHP
$argumentName = "orderId";
$argumentName = preg_replace("/([A-Z])/e", "-strtolower($1)", $argumentName);
echo $argumentName;
この行の出力は "order0d"です。なぜこれは機能しないのですか?
"orderId"というテキストを "order-id"に変換するpreg-replaceパターンを作成しようとしています。Preg置換パターンfor PHP
$argumentName = "orderId";
$argumentName = preg_replace("/([A-Z])/e", "-strtolower($1)", $argumentName);
echo $argumentName;
この行の出力は "order0d"です。なぜこれは機能しないのですか?
なぜ/e
を使用するのですか?
大文字の前にダッシュを入れてから、文字列全体を小文字にします。
あなたの正規表現があなたのテキストとどのように関係しているかは本当に分かりません。これはあなたが探している唯一のケースですか?もしそうなら、単純な文字列操作で十分です。 – FailedDev
'-'は[算術演算子](http://php.net/language.operators.arithmetic)で、' strtolower'は文字列を返す関数です。あなたは残りの部分を把握できるはずです。 – Gumbo
私はこのような正規表現を使用することはまだ意味がありません。すべてをIの検索で置き換え、-iで置き換えることができます。 – FailedDev