0

このような文字列を正規表現と一致させたいと思います:

@media only screen and (max-width: 479px){
.abv{style:value;style:value}
.xyz{style:value;style:value}

}

しかし、どういうわけか私はできません。私の正規表現は、次に続く/ @media[^{]*\{ /gim 以外のすべてに一致させたいと思っています-これは機能していないためです...正規表現をこのように機能させる方法がわかりません助けてください}}}} /@media[^{]*\{[^}}]*\}(?=})/gim[^}}] == [^}]

4

5 に答える 5

1

From Respond.js, here is a Demo

@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+[^\}]+\}
于 2014-07-16T03:07:12.037 に答える
0

あなたはこれを求めている:

/@media[^{]*\{(?:(?!\}\s*\}).)*/gis

ここRegexrでそれを参照してください

  1. m修飾子は必要ありません。アンカー^$

  2. 改行文字も一致sさせるための修飾子を意味しました。正規表現でを.使用しませんでしたが、使用しました。.

  3. この構成で達成したいことは可能です。つまり、次の文字の後に空白が含まれている可能性(?:(?!\}\s*\}).)*がない場合にのみ、次の文字と一致します。この主張は、否定的な先読みによって保証されます。で始まるグループは、キャプチャを行わないグループであり、特別なことは何もありません。}}(?!\}\s*\})?:

于 2012-11-21T09:46:10.550 に答える
0

あなたもこれを試すことができます/@media[^\(]+[^\)]+\){([^{]+[^}]+})+[^}]+}/ig

于 2012-11-21T09:48:56.870 に答える
0

これを試して:

@media[^\{]*\{([^\{]+\{[^\}]+\}\n*)*\n*\}
于 2012-11-21T10:06:07.140 に答える
0

これがどのように機能するかは 100% 確実ではありませんが、次のように見えます (このページの他のエントリからの試行錯誤)

/(@media[^{]*{(?:(?!}\s*}).)*}.*?})/s
于 2013-01-31T11:36:03.070 に答える