平衡組 正則表示式
阿新 • • 發佈:2019-02-02
(?<group>): 把捕獲的內容命名為group,並壓入堆疊
(?<-group>): 從堆疊上彈出最後壓入堆疊的名為group的捕獲內容,如果堆疊本來為空,則本分組的匹配失敗
(?(group)yes|no) :如果堆疊上存在以名為group的捕獲內容的話,繼續匹配yes部分的表示式,否則繼續匹配no部分
(?!) :零寬負向先行斷言,由於沒有後綴表示式,試圖匹配總是失敗
舉例如下:
< #最外層的左括號 [^<>]* #最外層的左括號後面的不是括號的內容 ( ( (?'Open'<) #碰到了左括號,在黑板上寫一個"Open" [^<>>]* #匹配左括號後面的不是括號的內容 )+ ( (?'-Open'>) #碰到了右括號,擦掉一個"Open" [^<>]* #匹配右括號後面不是括號的內容 )+ )* (?(Open)(?!)) #在遇到最外層的右括號前面,判斷黑板上還有沒有沒擦掉的"Open";如果還有,則匹配失敗 > #最外層的右括號