同样,正则表达式问题

时间:2014-07-31 20:45:55

标签: regex

我在论坛上发布了很多关于Regex的问题,但我真的需要你的帮助。

我有以下文件:

<!-- Defines the template for the tabs. -->
<div class="tabs">
    <ul role="tablist">
        {{BOS:Sequence}}
        <li role="tab" class="{{TabType}}" id="{{tabId}}">
            <span>{{TabFile}}</span>
        </li>
        {{EOS:Sequence}}
    </ul>
</div>

现在,我想要{{BOS:Sequece}}和{{EOS:Sequence}}之间的所有内容,可以包含标签,我可以将它们过滤掉。

我已经完成了以下正则表达式:

({{BOS:Sequence}})[.]*[\s\S]*({{EOS:Sequence}})

这是正常的,但是......

但是,当我的内容更改为以下

<!-- Defines the template for the tabs. -->
<div class="tabs">
    <ul role="tablist">
        {{BOS:Sequence}}
        <li role="tab" class="{{TabType}}" id="{{tabId}}">
            <span>{{TabFile}}</span>
        </li>
        {{EOS:Sequence}}
    </ul>
</div>

    {{BOS:Sequence}}
    <li role="tab" class="{{TabType}}" id="{{tabId}}">
        <span>{{TabFile}}</span>
    </li>
    {{EOS:Sequence}}

然后正则表达式匹配:

    {{BOS:Sequence}}
    <li role="tab" class="{{TabType}}" id="{{tabId}}">
        <span>{{TabFile}}</span>
    </li>
    {{EOS:Sequence}}
</ul>
</div>

    {{BOS:Sequence}}
    <li role="tab" class="{{TabType}}" id="{{tabId}}">
        <span>{{TabFile}}</span>
    </li>
    {{EOS:Sequence}}

关于如何解决这个特定问题的想法?

P.S:我正在写javascript正则表达式。

1 个答案:

答案 0 :(得分:1)

你的正则表达式应该是:

{{BOS:Sequence}}[\s\S]*?{{EOS:Sequence}}

RegEx Demo