我正在寻找一个 RegEx,它将找到其中没有 Case Else 的 Select Case 语句。
这是我到目前为止想出的
(?sm)^\s*Select Case.*(?<!^\s*Case Else.*)End Select
除了可能有嵌套语句的情况外,这个工作完美。
在我尝试使用平衡组时,我想出了以下内容
Select Case(?>Select Case(?<DEPTH>)|End Select(?<-DEPTH>)|.?)*?(?(DEPTH)(?!))End Select
哪个正确找到了 Select Case/End Selects 的平衡组,但我很难让它与 (?
下面是一些示例数据:
Select Case
Case :
Select Case
Case : Something
End Select
Case Else : SomethingElse
End Select
在这种情况下,它应该只匹配内部 Select Case,因为 Outter 有它的 Case Else
Select Case
Case :
Select Case
Case : Something
Case Else : SomethingElse
End Select
End Select
应该匹配整个块,因为内部有 Else 但外部没有。
Select Case
Case :
Select Case
Case : Something
Case Else : SomethingElse
End Select
Case Else : SomethingElseOutter
End Select
不应该匹配,因为内部和外部选择都有 Case Else