2012-03-26 13 views
1

このCSSファイルを別のブロックに分割しようとしています。/* @ - と一致するものはすべて、次のブロックの前に1つのブロックです。私は今このコードを別々のブロックに分割して、運がない日にしようとしています。私は本当に助けていただければ幸いです。一例として、正規表現でCSSブロックを分割する方法

/*@- XYZ PAGE 
--------------------------------------------------------------*/ 
#xyz {font-weight:normal; line-height:17px} 
#xyz .fieldset-content {padding:0 20px; margin-bottom:50px} 
#xyz h2 {color:#BC0000; margin:20px 0 10px 0} 

/*@- ar */ 
#xyz ul {margin-right:25px} /* This is a normal comment */ 
#xyz p.top a {color:#bc0000; float:left} 
#xyz .spot h2 {color:#000; float:right; margin:0} 

/*@- ie6 */ 
#xyz .spot {clear:both} 
#xyz .spot .h2seperator {float:left} 

/*@- ie6 ar */ 
#xyz p.top a {color:#bc0000; float:left} 
#xyz .spot {margin-top:80px; overflow:hidden; clear:both} 
#xyz .spot h2 {color:#000; float:right; margin:0} 

/*@- ie7 */ 
#xyz .spot .h2seperator {float:left} 

/*@- ie7 ar */ 
#xyz .spot .h2seperator {float:right} 
#xyz .spot div {float:left} 

これは、単一のブロックのようになります。

/*@- ar */ 
#xyz ul {margin-right:25px} /* This is a normal comment */ 
#xyz p.top a {color:#bc0000; float:left} 
#xyz .spot h2 {color:#000; float:right; margin:0} 

これは別のブロックである:

/*@- XYZ PAGE 
--------------------------------------------------------------*/ 
#xyz {font-weight:normal; line-height:17px} 
#xyz .fieldset-content {padding:0 20px; margin-bottom:50px} 
#xyz h2 {color:#BC0000; margin:20px 0 10px 0} 
+0

どのように別々のブロックを意味していますか?どのようにそれらを区切りますか?異なるファイル、または上記のブロック間のスペースがちょっとありますか? – mattbilson

+1

正規表現を処理するために何を使用していますか?ほとんどの言語はライブラリに「分割」メソッドを提供しています。デリミタを使用して呼び出す必要があります。空の場合は最初の要素を無視し、デリミタをもう一度付け直します。しかし、あなたがマッチを使用する必要がある場合は、以下の私の答えを参照してください。 – mgibsonbr

+0

@mgibsonbrあなたが正しいです、それは良いことです!私は今それを行う分割を使用しています:) – kht

答えて

1

あなたがpositive lookaheadnon-greedy quantifiersを使用することができます。

(\/\*\@-.*?)(?=\/\*\@-|\z) 

説明:

  • ブロックの開始:一致基()、キャプチャ

    • \/\*\@-(一致/*@-
    • 何か.ゼロ回以上*遅延?
  • 続いて、しかし含まない:(?=)
    • a Notherの開始をブロック:\/\*\@-
    • か:|
    • テキストの末尾:.はいずれにもマッチしますので、仕事にそのために\z

を、あなたは、あなたの正規表現で複数行を有効にする必要があります改行を含む文字。 Rubularで例の作業

編集:はそれをそれが本当に働いて表示するビットを変更し、前の例では、テキストの単一のチャンクのように見えた)

関連する問題