我需要快速添加前綴到我所有的類和ID的,它是一個很大的CSS文件。我在想一個快速的正則表達式字符串,但到目前爲止我失敗了。有任何想法嗎?有一種快捷的方式爲所有CSS類和ID添加前綴?
我已經試過喜歡簡單的事情:
\#([A-z0-9]+) {
,這將讓我替換#prefix_ $ 1,但它並沒有考慮到:
#id {
#id.class
#id,
等我不能只需要替換所有#[a-z0-9],因爲它會嘗試抓取背景色等等。
我還需要替換所有的類,這對我來說更令人困惑。
我需要快速添加前綴到我所有的類和ID的,它是一個很大的CSS文件。我在想一個快速的正則表達式字符串,但到目前爲止我失敗了。有任何想法嗎?有一種快捷的方式爲所有CSS類和ID添加前綴?
我已經試過喜歡簡單的事情:
\#([A-z0-9]+) {
,這將讓我替換#prefix_ $ 1,但它並沒有考慮到:
#id {
#id.class
#id,
等我不能只需要替換所有#[a-z0-9],因爲它會嘗試抓取背景色等等。
我還需要替換所有的類,這對我來說更令人困惑。
你可以搜索:
\.(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)[^}]+{
\#(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)[^}]+{
應該找到你所有的類名和ID名
隨着RegExr,使用此:
(?<=#|\.)(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)(?=[^}]+{)
編輯: 下面是一個測試的鏈接在谷歌的CSS http://regexr.com?2ugv1
我會像這樣的東西去:
/([#\.])([^\d][a-z0-9-_]+)/ Replace with
$1PREFIX_$2
但是要注意,它會趕上的色彩以及(如果有做小寫字母)我正在處理一個解決方法。
-1,也會替換'ul li:在{content:「#id.class {」;}' – hakre
你可以試試這個[#|\.][\w]+\.?([\w\-]+\s?)
它的工作對這些
#id {
#id.class {
#id, #otherId {
#class-dashed
#class_dashed
ul li:after {content: " #id.class { ";}
.class {background-color: #fff250}
#id.class {color:#ff}
還發現了一個很好的tool玩弄不同的選項。顏色仍然存在問題,但由於它們遵循與ID相同的規則,因此無法真正擺脫這種情況。
更新 從結果中排除:
從不匹配的顏色。
(?<![: ])[#\.][\w]+\.?([\w-]+\s?)
你需要一個正則表達式引擎來支持消極的後視,不是那種熟悉php,所以不知道它是否有它,但我會想象它。
之後''''''''''裏面不需要'|'。此外,在##虛線上失敗,這是完全有效的。此外,捕獲'{'並將其刪除。使用您自己的工具進行測試。 –
-1,也會替換'ul li:{content:「#id.class {」;}' – hakre
@hakre:true - updated。 –
正則表達式不是一個CSS解析器,所以如果你在其中找不到一個真正的嚴格字符串模式,你將會失敗並返回正則表達式,如果你不共享你的整個CSS,這並不容易。也許重命名HTML內的類比在CSS內重命名更容易? – hakre
@hakre我仍然需要重命名類和ID以保持樣式。 –