0

ASP.NET コメントを検索するために、コード エディター (サブライム テキスト) で次の正規表現を使用しています。

<%--.*(\n.*)*--%>

--%>最初の正規表現が見つかるとすぐに、この正規表現の前方参照を停止したいと思います。--%>ただし、最後のコメントが見つかるまで探し続けます。私は、ある種のフラグを使用して最初に停止させる必要があるという考えを持っていますが、それ--%>を理解することはできません。

この正規表現を変更する方法を教えてください。

アップデート

サンプル マークアップを投稿するのを忘れていました。ここにあります:

        <div class="modal-footer">
        <%--<button class="btn" data-dismiss="modal">
            Close</button>
        <button id="btnAddCountry" class="btn btn-primary" data-dismiss="modal">
            Save changes</button>--%>
    </div>
</div>
<div class="row-fluid">
    <div class="span12">
        <div class="box paint_hover">
            <div class="title">
                <h3>Sale Voucher</span>
                </h3>
            </div>
            <div class="content">
                <ul id="tabExample1" class="nav nav-tabs">
                    <li class="active"><a id="lnkAddEditVoucher" href="#AddEditVoucher" data-toggle="tab">Add/Update Sale Voucher</a></li>
                    <li><a id="lnkViewVouchers" href="#ViewVouchers" data-toggle="tab">Search Sale Voucher</a></li>
                    <%--  <li><a id="lnkViewParties" href="#ViewParties" data-toggle="tab">Search Parties</a></li>--%>
                </ul>

2番目のコメントではなく、最初のコメントに一致させたいだけです。

4

2 に答える 2

9

*量指定子を非貪欲にする必要があります。?通常、これは.*?単に.*.

また、正規表現を少し単純化しました。Sublime Text は(?s)、パターンの先頭で修飾子をサポートして、ドットを改行にも一致させます。

(?s)<%--.*?--%>

改行を明示的に一致させたい場合:

<%--(.|\n)*?--%>
于 2013-11-12T13:29:04.710 に答える
1

.*あなたが抱えているように見える問題は、何でも( を含む)と一致する貪欲なバージョンの を使用していることです--%><%--.*?(\n.*?)*?--%>代わりに使用して、貪欲にならないようにしてください。

于 2013-11-12T13:30:10.437 に答える