我想用PHP替換一些CSS樣式。REGEX與例外匹配(對於CSS)
我想在所有#
和.
前之後添加.myclass
任何,
但不是那些行以background
並用「;」最後。
到目前爲止,我的正則表達式不起作用。任何幫助,將不勝感激。
這是我的PHP:
$patterns = '/^[^background][,]\s*((#|[.])[^;]+)/m';
$replacements = ', .myclass \1';
$str= preg_replace($patterns,$replacements, $string, -1);
原來這裏是CSS:
#class1, #id1, #id2{
margin:0 0 1.5em 0;
font-size:2.2em;
font-family:Century Schoolbook Bold;
}
.class2{
background:#fff, #111, #ccc;
font:1.1em;
font-family:Century Schoolbook;
}
,這裏是所需的CSS:
#class1, .myclass #id1, .myclass #id2{
margin:0 0 1.5em 0;
font-size:2.2em;
font-family:Century Schoolbook Bold;
}
.class2{
background:#fff, #111, #ccc;
font:1.1em;
font-family:Century Schoolbook;
}
您想要在* all *'#'和'.'前添加'.myclass',那麼'#class1'和'.class2'怎麼樣保持不變?在這些規則下'font-size:2.2em;'會變成'font-size:2.myclass2em;'(在'.'後面加'myclass')。你能否澄清你的問題/縮小你的標準究竟是什麼必須被替換? – 2012-07-24 04:23:45
例如「我希望在以'''''結尾的行上發生的每個'#'和'.'後面添加'.myclass'? (它仍然不能解釋爲什麼'#class1'和'.class2'沒有改變) – 2012-07-24 04:25:01
對不起,我的意思是我想在'#'和','之前添加.myclass只有在逗號後面,謝謝望着它的人 – 2012-07-24 04:32:47