0

如何捕获 if 语句块。我已经在命名组中捕获了 else 语句块。我目前的解决方案是在这个永久链接:http: //regexhero.net/tester/?id=7663e386-fcc0-4f19-b613-e9e58374a5d7

@if\([^)]*\)\s*{(((?>(?<open>@if\([^)]*\)\s*{)|@{[^}]*}|[^}@]+|(?:}else{(?<else>([^}]*))(?=}endif@))|(?<-open>}endif@)))*(?(open)(?!)))}endif@

语句块内的内容与 html 相关。IE

@if(prevbutton.visible=='True'){
    <div style="float:left; display:inline; margin-right: 5px; padding-top:7px;">
        <span class="arrows_prev" id="prevbottom" title="@{prevbutton.toindex}" rel="prev" data-page-number="@{prevbutton.toindex}"></span>
    </div>
}else{
    test
}endif@
4

1 回答 1

0

采取了另一种方法来解决问题。这是我的解决方案:

(?<if_else>(?<=@if\([^)]*\){).*(?=}else{))|(?<if>(?<=@if\([^)]*\){).*(?=}endif@))|(?<else>(?<=}else{)[^}]*(?=}endif@))
于 2015-03-06T08:53:38.757 回答