0

あまりにも多くの参照で書かれた CSS があります。ヘッダー作業の前にそれらの参照を削除したかったのです。

たとえば、これを変更したい:

#x #y #header, #s #t #header{}
#header #a #b, #t #header{}
#k, #l,#x #y #header{}

そして、これは私が期待している出力です:

#header, #header{}
#header #a #b, #header{}
#header{}

RegexPal でこのコードを試しましたが、あまり成功しませんでした:

(.*)(?=#header)

#header の前に来るすべての要素を削除したいので、何度も検索して見つけることができますが、この正規表現が行っているのは、最初の #header ではなく最後の #header でチェックすることです。たとえば、この正規表現の出力は次のとおりです。

#header{}
#header{}
#header{}
4

1 に答える 1

1

貪欲ではないマッチを使用し、ルックビハインドを投入します。

(?<=^|,).*?(?=#header)

live demoサンプル テキストの不要な入力と一致するこの正規表現のを参照してください。

説明:

.*#header貪欲です - 可能な限り一致し、次へスキップする可能性が.*?ありますが、消極的(貪欲ではない) であり、可能な限り一致しません - a をスキップしません#header

(?<=^|,)一致する前の入力が入力の開始またはカンマのいずれかであることをアサートする後読みです。これにより、カンマの後に新しい一致が可能になります。

于 2013-10-16T12:20:31.140 に答える