[問題] boost regex 在某些情況下會導致程式當掉

看板RegExp (正規表示式 Regular Expression)作者 (allstar)時間16年前 (2008/12/15 17:07), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串1/1
最近寫程式(C++)用到 boost regex 發現在某些表示式下,程式會當掉 但用 The Regulator 測試卻正常 題目為 取出 "A111 BBB" 這個字串中的 "BBB" 我將表示式寫成 (?<=a\d+\s).* 用 The Regulator 得到正確結果,用 boost regex 程式當掉 經過多次測試 發現問題似乎是出在那個 + 號 若把題目改成 取出 "A1 BBB" 這個字串中的 "BBB" 將表示式寫成 (?<=a\d\s).* 則用 The Regulator 和 boost regex 都會得到正確結果 個人推測 只要在 (?<= 與 ) 中間使用了不確定數值的東西,都會導致程式當掉 請問是我的表示式有問題,還是 boost regex 有問題? 有沒有解決的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.14.92

12/17 00:35, , 1F
能夠在look behind使用不定長度的Regex engine不多
12/17 00:35, 1F

12/17 00:35, , 2F
你可能要確認一下
12/17 00:35, 2F

12/17 00:38, , 3F
(?<=a\d{3}\s).* <--- 改成這樣如何?
12/17 00:38, 3F

12/22 16:37, , 4F
問題是題目不是這麼單純的,沒辦法確定實際數字
12/22 16:37, 4F

12/22 16:38, , 5F
目前是把字串抓出來以後自己再另外把頭尾部分砍掉
12/22 16:38, 5F

12/22 16:38, , 6F
只是這樣寫實在很醜,本來一行解決的東西要搞到十幾行 Q_Q
12/22 16:38, 6F

12/22 16:39, , 7F
話說回來,原來 The Regulator 是這麼強大的東西阿 ...
12/22 16:39, 7F
文章代碼(AID): #19HXuqD_ (RegExp)
文章代碼(AID): #19HXuqD_ (RegExp)