看板 RegExp 關於我們 聯絡資訊
括號有可能不出現,有可能出現,但括號內的東西一定要出現 雖然可以在左括號加個量詞?,右括號加個量詞?,但這樣無法確保括號是同時出現 或同時不出現 若是把左括號與右括號用()包起來後再加個量詞?,就會導致括號內的東西無法一定出現 想請教像這種不相連的元素但卻有「同時出現,或同時不出現」的性質該如何 撰寫正規表示法滿足? -- 「看在上帝的份上,我們不能當著孩子的面槍殺他的父親!」 「那我們就連孩子一起幹掉!」 「第一槍打中的是那個天真的孩子,第二槍是抱著孩子的母親。第三槍 停頓了三秒,當難以致信的父親擦拭著臉上愛子的腦漿從震驚中醒轉 過來,慢慢的轉頭看向停車的地方,分辨出是誰在攻擊他後,第三顆 子彈才將他的腦殼打飛。」 ─摘自〈狼群〉 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.47.170.217 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1521971166.A.446.html
cutekid: 能舉個例嗎 03/26 00:54
vince2018: /\(([^\)]+)\)/ 03/29 10:59
mars90226: 感覺只能用 | 去分有出現跟沒出現的狀況 03/30 13:23
asglay: Google balancing group 03/30 20:54
art1: 感謝樓上的關鍵字 03/30 22:51
art1: 雖然是語言限定,不過這麼複雜的功能有這種情況很正常 03/30 22:52
art1: 連書上都沒提到這個功能,本以為那作者已經鑽研的很深了 03/30 22:55
cutekid: 推 asglay 大大唷,原來還有 balancing group 這種東西! 03/31 13:24
asglay: 如果是PCRE可以用(?R) 04/09 01:19
cutekid: 即使用了(?R),好像會 match 到 unbalance brackets 04/09 14:10
asglay: https://regex101.com/r/g2C1Wg/1 04/12 22:55
LPH66: 事實上形式語言理論裡的正規表示式是不能表示平衡括號的 04/13 06:29
LPH66: 因此一般都需要靠各自程式語言版本裡的擴充 04/13 06:29
LPH66: 啊, 應該要微修正上上樓: 不能表示任意多個平衡括號 04/13 07:18
LPH66: 如果是固定數量的話那就寫死就好了 04/13 07:18
shadowjohn: 大學時程式設計曾出過的考題~ 04/18 15:25
shadowjohn: 讀出磁片裡五個測試txt檔,符合成對內容 T,反之F 04/18 15:27
no1kk: 記得這是學array push/pop 的範例,string由左開始,遇到左 06/13 15:03
no1kk: 括號就push進去array,遇到右括號就pop出來比對。只要中途 06/13 15:03
no1kk: 右括號有比對錯誤或是string結束array卻還有元素就是沒平衡 06/13 15:04