我正在研究LESS中的問題,其中我必須將LESS文件中存在的類分開。JavaScript的正則表達式來打破LESS中的類/ ID
例如,我有一個類,如:
mango{
color:@color;
li{
color:red;
}
}
#big-circle{
color:green;
li{
color:@color;
}
a{
color:red;
}
#majlis{
background:blue;
}
}
我已經第一次使用正則表達式如下分裂文件成子芒果#大圈。所以我使用了以下正則表達式:/[\}]*[\}]/gm
。但是,雖然它適用於第一種情況,但它在第二種情況下失敗。
任何人都可以建議我如何可能修改我的正則表達式?或者我應該看看一些不同的方法?
上述代碼的輸出(如在類的名稱):
#big-circle
a
#majlis
mango
雖然我需要將其打入big-circle
和僅mango
。
既然有芒果之間'沒有技術上的差異{'和'一個{' - 無論是字母加一個大括號 - 你需要的HTML元素'的列表(| abbr | b | ...)',這樣你就可以將它們從匹配中排除。另外,'#big-circle'是一個ID,而不是一個類。 – Tomalak
@Tomalak,一個簡單的元素列表將沒有多大用處。 LESS層次結構可能很複雜:一個類可能有另一個類,或者一個ID或一個標籤。此外,芒果甚至不是HTML元素,但是LESS編譯器將它視爲一個。 – AbbaShareen
請勿用正則表達式解析LESS或任何其他語言。你永遠不會做對。 Regexp沒有理論分析能力來解析LESS複雜性的語言。你爲什麼要這樣做? –