#334455
長い16進コードの色( )を短い色()に置き換える関数を書いています#345
。これは、16進数の各色が17の倍数である場合にのみ実行できます(各16進数のペアは同じ文字で構成されます)。
たとえば、#EEFFCC
はに置き換えられますが#EFC
、#EDFFCC
は何にも置き換えられません。
preg_replace()
カスタムコールバックを使用せずに、1回の呼び出しでこれを実行したいと思います。
私はすでにこれを試しました:
$hex = preg_replace('/([0-f]){2}([0-f]){2}([0-f]){2}/i', '\1\2\3', $hex);
しかし、それは各ペアに同じ文字を持つヘクスだけでなく、すべてのヘクスを短縮します。同じ文字のペアだけを一致させる方法がわかりません。
助けてください。