私がやろうとしていることは本当に簡単だと感じていますが、感謝、ここで私が得たものの一例である:RegExで特定のプロパティと値を持つすべてのCSSセレクタに一致
今.selector, .selector2 {
color: #fff;
background: #f4c13b;
opacity: 1;
}
.selector3:hover {
color: red;
opacity: 0;
background: #f4c13b;
}
#selector4.class {
background: #f4c13b;
color: red;
}
@media (min-width:320px) {
selector5 {
opacity: 1;
background: #f4c13b;
}
}
、私はbackground: #f4c13b;
を持つすべてのセレクタに一致するようにしたいので、キャプチャグループを返します。.selector, .selector2
と.selector3:hover
と#selector4.class
とselector5
を。ここで
は、私がこれまでに得たものである:何かが{
前にそこにあるかのよう/(.*) {[\S\s][^background]*background: #f4c13b;/gm
は残念ながら、それだけで、最初のプロパティとしてbackground: #f4c13b;
を持っているセレクタと一致し、background: #f4c13b;
それがない試合:(
これの背後にある基本的な考え方は、すべてのセレクタが新しい行にあるので、{
の前にすべてをキャプチャしてからbackground: #f4c13b;
の前にすべてを選択してから}
の前にすべてを選択して、第1の捕捉グループからのrs。
私は式をテストするためにregexr.comを使用していますが、私は彼らがのJavaScript風味のRegExを使用していると推測しています。少しの助けと説明は非常に、非常に感謝される、ありがとう!
regexを使って具体的に解決策が必要ですか?あなたのユースケースは何ですか? CSS3のセレクタを理解し、CSSを圧縮して、すべてのセレクタを反復処理することで、CSSを完全に解析する方が簡単かもしれないと思います... –
私はあなたが使用している言語を教えてください。 Java(またはJavaScript)では、パターンを繰り返し照合し、セレクタを何らかの種類のデータ構造に抽出します。 –
ところで、 '[^ background]'は 'background'以外の文字列にマッチすることを意味しません。代わりに、 'b、a、c、k、g、r、o、u、n、d'以外の任意の_character_にマッチすると言います。 –