我有以下模式:模式匹配的CSS規則
[\{\}].*[\{\}]
用下面的測試字符串(如果需要的話可以提供更多):
}.prop{hello:ars;} //shouldn't match
}#prop{} //should match
}.prop #prop {} //should match
該模式的目的是找到空的CSS規則集。有人可以建議我如何排除與第二組括號之間的字符匹配嗎?隨着我接近解決方案,我將更新模式。
編輯: 上http://gskinner.com/RegExr/ 這種模式:[\}].*[\{]{1}[/}]{1}
似乎有希望的結果,雖然轉移到PHP的原因,我不明白,當它被打破。
編輯: 如果這應該是一個單獨的問題,首先道歉。 在PHP中使用的第一編輯模式:
$pattern = "/[\}].*[\{]{1}[/}]{1}/";
preg_match_all ($pattern, $new_css, $p);
print_r($p);
當$ new_css是包含空的規則集上傳的CSS文件的內容的字符串,$ P是從來沒有填充。但我知道這種模式是可以的。任何人都可以看到問題是什麼?
編輯:最終解決方案
//take out other unwanted characters
$pattern = "/\}([\.#\w]\w+\s*)+{}/";
//do it twice to beat any deformation
$new_css = preg_replace ($pattern, '}', $new_css);
$new_css = preg_replace ($pattern, '}', $new_css);
爲什麼'\ {\ S * \}'不行? – amon 2012-07-18 16:07:01
我想要得到的類/ ID等以及括號 – 2012-07-18 16:14:23
去年我做了一些類似的PHP與.css文件,刪除所有評論,標記文本和檢測到的所有顏色定義。所以我也很好奇,如果有人會幫助你找到一些解決方案。 – Stano 2012-07-18 16:30:25