[問題] 如何確保括號成對出現?

作者: art1 (人,原來不是人)   2018-03-25 17:45:56
括號有可能不出現,有可能出現,但括號內的東西一定要出現
雖然可以在左括號加個量詞?,右括號加個量詞?,但這樣無法確保括號是同時出現
或同時不出現
若是把左括號與右括號用()包起來後再加個量詞?,就會導致括號內的東西無法一定出現
想請教像這種不相連的元素但卻有「同時出現,或同時不出現」的性質該如何
撰寫正規表示法滿足?
作者: cutekid (可愛小孩子)   2018-03-26 00:54:00
能舉個例嗎
作者: vince2018   2018-03-29 10:59:00
/\(([^\)]+)\)/
作者: mars90226 (火星人)   2018-03-30 13:23:00
感覺只能用 | 去分有出現跟沒出現的狀況
作者: asglay (收收收尾)   2018-03-30 20:54:00
Google balancing group
作者: art1 (人,原來不是人)   2018-03-30 22:51:00
感謝樓上的關鍵字雖然是語言限定,不過這麼複雜的功能有這種情況很正常連書上都沒提到這個功能,本以為那作者已經鑽研的很深了
作者: cutekid (可愛小孩子)   2018-03-31 13:24:00
推 asglay 大大唷,原來還有 balancing group 這種東西!
作者: asglay (收收收尾)   2018-04-09 01:19:00
作者: cutekid (可愛小孩子)   2018-04-09 14:10:00
即使用了(?R),好像會 match 到 unbalance brackets
作者: asglay (收收收尾)   2018-04-12 22:55:00
作者: LPH66 (-6.2598534e+18f)   2018-04-13 06:29:00
事實上形式語言理論裡的正規表示式是不能表示平衡括號的因此一般都需要靠各自程式語言版本裡的擴充啊, 應該要微修正上上樓: 不能表示任意多個平衡括號如果是固定數量的話那就寫死就好了
作者: shadowjohn (轉角遇到愛)   2018-04-18 15:25:00
大學時程式設計曾出過的考題~讀出磁片裡五個測試txt檔,符合成對內容 T,反之F
作者: no1kk (心中在下雨)   2018-06-13 15:03:00
記得這是學array push/pop 的範例,string由左開始,遇到左括號就push進去array,遇到右括號就pop出來比對。只要中途右括號有比對錯誤或是string結束array卻還有元素就是沒平衡

Links booklink

Contact Us: admin [ a t ] ucptt.com