2015-06-24 30 views
1

我正在使用具有25.000+行styles.css的WordPress高級主題。我想要更改站點範圍內的字體和主要顏色,爲此,我想要捕捉所有使用它們的類和ID用於我的childtheme。從包含特定搜索詞的CSS樣式表中捕獲所有類和ID

手動搜索25.000行,然後選擇並複製類是一個非常緩慢的過程,我相信這可以通過RegEx和Preg匹配所有東西或類似的東西來實現自動化,但我對於創建這樣的腳本。

但至少我能弄清楚這樣的任務腳本需要遵循的邏輯。

所以我們假設我需要一個規則來收集字體Roboto分配給的所有類和ID。

基本上它需要 1.找到的Roboto,然後 2.回到{和 3.收集一切之前{直到 4.最後}之前,所以它需要去向後搜索 5。這需要通過整個文檔來完成,以捕獲Roboto分配給的所有類。

結果將是一個非常大的逗號分隔的類列表,然後我可以輕鬆地指定新的字體。

是否有任何RegEx專家看到他眼前的字符串?對於那些能夠流利地「說出」RegEx的人來說,我確信這並不難,但我很快就失去了嘗試自己學習的經歷,我只是成功地進行了簡單的替換。

... 
last CSS rule ending here. 
} 

.some, 
.classes, 
.and, 
#IDs to collect them all, 
#not only from this one css rule, 
. but from a whole 25.000+lines stylesheet 

{ 
    font-family: 'Roboto', sans-serif; 
    font-size: 32px; 
    color: ... 
    etc. 
} 
... 
+0

25000 CSS的線!! – Rob

+0

這裏只是[一些瘋狂的正則表達式](https://regex101.com/r/bW2rO8/1),這會幫助你理解你不應該使用它來完成這個任務:'^ \ s *([^ {嗎?\ n] +)\ N *(\ {[^}] *字體家庭?:\ S * [ '「]的Roboto \ b [?'」] [^}] * \})'?。 –

+0

感謝您的努力,但我不明白爲什麼它是瘋狂的(是的,它很長,但我確定它需要針對這項任務),爲什麼我不應該使用它?它已經接近我所需要的,只是現在它只在{之前捕捉一行,而它應該捕捉所有直到最後}。這可以做得好嗎?也許你可以更詳細地向我解釋爲什麼我搜索的這樣的腳本應該是不可能的,或者至少不能用正則表達式來完成。我不會在網站上運行這個腳本,它只是一次性幫助提取所有在子CSS中使用的類。 – Sofian

回答

1

目前還沒有一個具體的CSS規則針對各階層喜歡的方式font-family要麼CSS的JavaScript,或jQuery的

但是,你可以做搜索:

'開始於''

div[class^="something"] { } /* target divs */ 
*[class^="something"] { } /* targets everything */ 

div[id^="something"] { } /* target divs */ 
*[id^="something"] { } /* targets everything */ 

這將在這樣的工作: -

<div class="something-else-class"></div> 

'包含..'

div[class*="something"] { } 

這將在

<div class="is-something-here"></div> 
<!-- class name can be anything. "something" can be anywhere --> 
工作

'結束於...「

div[class$="something"] { } 

這將在

<div class="you-are-something"></div> 

這種工作方式可以針對所有類和/或ID有一個font-family規則和改變它的。

參考

+1

很好的回答,謝謝你的分享。 –

+0

是的,感謝分享,這是非常好的知道。我只是沒有得到我需要的橋樑,因爲我應該如何使用Roboto字體來定位所有類?他們需要有相似之處才能用這種方法來捕捉他們,但他們的名字卻非常不同。 – Sofian

相關問題