我已經prefixe用於在數據庫組名的,它們包括普通的文本和顏色代碼例如: & C [& aAdmin & C]。顏色代碼以&開頭,然後是一個字符或數字。他們結束在下一個顏色代碼或字符串的結尾。 字符串中沒有&作爲文本。 現在我有這個功能,但它只能處理字符串開頭的一個顏色代碼。任何建議一個很好的正則表達式替換處理一個字符串中的多個顏色代碼?正則表達式對多個取代的ColorCode
function mccolor($string){
$codes = array( "&0",
"&1",
"&2",
"&3",
"&4",
"&5",
"&6",
"&7",
"&8",
"&9",
"&a",
"&b",
"&c",
"&d",
"&e",
"&f");
$replace = array(
'<span style="color:#000000;">',
'<span style="color:#0000BF;">',
'<span style="color:#00BF00;">',
'<span style="color:#00BFBF;">',
'<span style="color:#BF0000;">',
'<span style="color:#BF00BF;">',
'<span style="color:#BFBF00;">',
'<span style="color:#BFBFBF;">',
'<span style="color:#404040;">',
'<span style="color:#4040FF;">',
'<span style="color:#40FF40;">',
'<span style="color:#40FFFF;">',
'<span style="color:#FF4040;">',
'<span style="color:#FF40FF;">',
'<span style="color:#3F3F10;">',
'<span style="color:#FFFFFF;">');
return str_replace($codes, $replace, $string).'</span>';
}
非常感謝,做工精細。 – Abadon 2012-01-13 14:48:29
@abadon:不客氣。 – Toto 2012-01-13 15:07:17