花了好幾個小時對此做了大量的搜索,並且無處可去。尋找RegEx guru的幫助。我正在尋找一個RegEx,可以刪除我指定的所有CSS樣式規則。例如,採取下面的例子輸入:正則表達式保持指定的CSS規則
<p style="font-size:10px">Text.</p>
<p><span style="font-size:12px; text-transform:uppercase">More text</span></p>
<p><span style="text-decoration:line-through; text-transform:uppercase;">Even more</span></p>
我在尋找這樣的輸出:
<p>Text.</p>
<p><span style="text-transform:uppercase">More text</span></p>
<p><span style="text-decoration:line-through; text-transform:uppercase;">Even more</span></p>
所以只保留text-transform:uppercase
和text-decoration:underline
。如果這需要在幾個RegExes中被打破,那很好。即第一個離開空style=""
標籤我可以刪除那些後。這裏的關鍵是我想指定要保留的規則,而不是要刪除所有可能的規則。
感謝所有幫助
更新: 我來最接近的是這樣的:
style=".*?(text-decoration:line-through|text-transform:uppercase)*.*?"
,並以$ 1更換。問題是它沒有捕獲我在捕獲組之後添加*時要保留的規則。
你爲什麼要使用正則表達式呢? – Nit
由於我不得不爲項目使用第三方轉換工具,因此只能通過RegEx進行這種更改。否則,是的,我會使用某種CSS解析器。 – Todd1561
只需通過Phantomjs或類似的東西傳遞中間結果即可。 – Nit