J'écris une fonction qui remplace la longue couleur codée hexadécimale (#334455
) avec un court (#345
). Cela ne peut être fait que lorsque chaque couleur en hex est multiple de 17 (chaque paire hexagonale est composée des mêmes caractères).PCRE pour remplacer # 334455 hex aveC# 345
par exemple. #EEFFCC
est remplacé par #EFC
, mais # EDFFCC
n'est pas remplacé par quoi que ce soit.
Je veux faire cela avec appel unique preg_replace()
sans aucun rappel personnalisé.
Je l'ai déjà essayé ceci:
$hex = preg_replace('/([0-f]){2}([0-f]){2}([0-f]){2}/i', '\1\2\3', $hex);
Mais qui réduit le délai de chaque paire tous les hexagones, et pas seulement les hexagones avec mêmes caractères. Je ne peux pas comprendre comment faire correspondre seulement des paires de même caractère.
Aidez-nous s'il vous plaît.
[0-9a-f] serait probablement mieux que [0-f]. –