1. 程式人生 > >平衡組 正則表示式

平衡組 正則表示式

(?<group>): 把捕獲的內容命名為group,並壓入堆疊 

(?<-group>): 從堆疊上彈出最後壓入堆疊的名為group的捕獲內容,如果堆疊本來為空,則本分組的匹配失敗 

(?(group)yes|no) :如果堆疊上存在以名為group的捕獲內容的話,繼續匹配yes部分的表示式,否則繼續匹配no部分 

(?!) :零寬負向先行斷言,由於沒有後綴表示式,試圖匹配總是失敗 

舉例如下:

<                         #最外層的左括號
    [^<>]*                #最外層的左括號後面的不是括號的內容
    (
        (
            (?'Open'<)    #碰到了左括號,在黑板上寫一個"Open"
            [^<>>]*       #匹配左括號後面的不是括號的內容
        )+
        (
            (?'-Open'>)   #碰到了右括號,擦掉一個"Open"
            [^<>]*        #匹配右括號後面不是括號的內容
        )+
    )*
    (?(Open)(?!))         #在遇到最外層的右括號前面,判斷黑板上還有沒有沒擦掉的"Open";如果還有,則匹配失敗
>                         #最外層的右括號