我搞砸了LESS PHP解析器,讓它取代在IE過濾器中找到的4色十六進制代碼。我想要做的是替換這樣的東西:#ff7755 33
與#ff775533
即。刪除它中的所有空間。很明顯,這些字符可能因顏色代碼而異。我發現this question這是非常接近我想要的。正則表達式替換字符串中的空格
現在,我有這樣的正則表達式其中找到字符串就好了:
(#([0-9a-f]){6}\s[0-9a-f]{2})
所有我現在需要的是把在preg_replace()
替換參數的正則表達式。
我搞砸了LESS PHP解析器,讓它取代在IE過濾器中找到的4色十六進制代碼。我想要做的是替換這樣的東西:#ff7755 33
與#ff775533
即。刪除它中的所有空間。很明顯,這些字符可能因顏色代碼而異。我發現this question這是非常接近我想要的。正則表達式替換字符串中的空格
現在,我有這樣的正則表達式其中找到字符串就好了:
(#([0-9a-f]){6}\s[0-9a-f]{2})
所有我現在需要的是把在preg_replace()
替換參數的正則表達式。
preg_replace('/(#[0-9a-f]{6}) ([0-9a-f]{2})/i','$1$2',$yourSource);
非常感謝你!我一直在努力掙扎幾個小時 - 但我還是無法理解正則表達式。該死的頭。 – Bojangles 2011-06-14 20:31:59
PHP手冊第一個例子,似乎是正是你正在嘗試做的:
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
當然,對你來說是:
<?php
$string = '#ff7755 33';
$pattern = '/(#[0-9a-f]{6})\s([0-9a-f]{2})/i';
$replacement = '${1}$2';
echo preg_replace($pattern, $replacement, $string);
?>
可你只是做在找到字符串後,會替換一個常規字符串? – Randy 2011-06-14 20:20:40
我可以,但我不知道該怎麼做,因爲整個字符串需要傳遞迴'return',而不僅僅是找到/替換位。還是我在這裏誤解了你? – Bojangles 2011-06-14 20:21:39
不妨只是'$ str = preg_replace(「/ /」,「」,$ str);'如果你已經知道這絕對是一個有效的顏色代碼。 – NorthGuard 2011-06-14 20:25:32