2

Netbeansで古いSCSSを編集していて、よりきれいになるようにフォーマットしたいと思います。

スペースが続かないすべてのコロンに対して正規表現の「検索と置換」を実行したいと思います。各コロンの後に正確に1つのスペースが続くようにします。

以下にいくつかのサンプルSCSSを示します。

display: block;
width:800px;
height:20px;
text-align:center;

正規表現は最初の行を無視し、次の3行では各コロンの後にスペースを追加します。

のような特別なコーナーケースがあることを私は知っていinput.focus::-webkit-input-placeholderます。「すべてを置き換える」のではなく、それぞれの検索と置換を1つずつ行うことができました。その後、コーナーケースをスキップできます。

これを行うための非正規表現の方法がある場合は、それも機能します。

4

3 に答える 3

2

この検索を試してください

([a-zA-Z0-9]:)([a-zA-Z0-9#])

そしてそれを

$1 $2
于 2012-09-06T17:33:49.927 に答える
1

最近使用した正規表現検索で機能しました:

([\t\s,;\{])([a-zA-Z\-]+):([\'a-zA-Z\d,\-%#]+((\s*,\s*|\s+)[\'a-zA-Z\d,\-%#]+)*([\r\n][\t\s]*)*[;|\}])

置換

$1$2: $3

notepad ++(v6.7.5)とsublime(ビルド3083)でテストしました。この正規表現は、次のような複数のシナリオを対象としています。

.some-class {
    font-family:'Arial Regular', 'Arial', sans-serif;
    width:25%;
    height:10px;
    color:#fff;
    border:1px solid #d7d7d7
}

疑似セレクターも無視します。

于 2015-12-09T00:34:23.643 に答える
1

@Ian Gの答えは少し近いですが、まだ不完全です。次のルールはそれによって捕らえられません:

background:url("img/test.jpg");
font-size:.8em;
height:auto !important;
line-height:1.2em;
width:calc(100% - 5px);

これらのルールをキャッチするために、もう少し変更しました。

([\t\s,;\{])([a-zA-Z\-]+):([\'a-zA-Z\d,\-\:\+\/%#\!\.\"\(\)]+((\s*,\s*|\s+)[\'a-zA-Z\d,\-%#\!\.\"\(\)]+)*([\r\n][\t\s]*)*[;|\}])

私が考えることができる唯一のシナリオは、それでも機能しません。それはインラインデータURIです。

background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlOGU4ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);

MIMEタイプの;は、それをスローします。ただし、この変更により、少し誤ったCSSフォーマットが検出されます。

于 2016-09-15T16:54:19.233 に答える