2012-02-17 8 views
2

私は、正規表現を使って私が理解しているHTMLに慣れ親しんでいる人が多いと知っていますが、この場合はCSSファイルを変更するために有効です。残念ながら、私は自分自身でそれを書くことは絶望的です。CSSファイルから項目を削除する正規表現

私は、CSSファイル内の項目を動的に追加/削除する必要があるスクリプト(PHP)を作成しています。 CSSファイルの例としては、次のような宣言があります。

.cat-item-4 { 
    background: #ff0fcd; 
} 

おそらく、この宣言全体を削除することは可能でしょうか?それは "バックグラウンド"以外のものを含んでいる可能性がありますので、.cat-item-4クラスを見つけて、それらとカッコを含めてすべてを取り除く必要があります。基本的にはたくさんあります。

助けてください。

修飾PCRE_DOTALL(S)と結合
$re = "#\.\bcat-item-4\b.+?\}#s"; 

、これは名前のBCAT項目-4とのすべてのクラスを見つける:

+0

CSS!= HTML ...これに対してRegexesを使用するのはそれほど悪くないですが、本当に最初にそれを行う必要があるのだろうかと思います。 –

+1

さて、私は彼らが異なっていることを知っている、私はちょうどここでregexesについて尋ねるときに起こる通常の怒りを避けるためにしようとしていた!状況は少し複雑で、おそらく完全に説明する価値はありません。本質的にはWordpressプラグインのためのものです。管理者経由で16進数の色をカテゴリに割り当てて、プラグインがこれらのクラスの表示を制御する必要があります。私は醜いインラインCSSでそれを行うことができましたが、私はこれをできるだけきれいに保つように努めています! – artparks

+0

問題ありません。あなたはそれを "オンザフライ"で頻繁に変更しない限り、それほど大したことではありません。AFAIC –

答えて

1

あなたは見つける/に置き換え正規表現を使用することができます。 #記号はPHPにどの区切り記号を使用するかを指示します。なぜなら、2番目の#の後には、 's'が。宣言全体を削除するために必要な改行に一致する必要があります。

+0

ルールの中に、たとえば背景画像のURLの一部として}}がないことに注意する必要があります。 –

+0

これは治療になります、ありがとうございます。使い方はすべて非常にシンプルで、バックグラウンドの16進数やカラーヘックスを超えるものではありません。再度、感謝します。 – artparks

関連する問題