[問題] 怎抓到全部的()

作者: vernc (cralvin)   2021-10-09 20:15:44
[macdoll(マコ(・c_・))]shutter chance!!(ラブライブ)
[しろむじ(ん坊主)]まる限定。((G)えでぃしょん)
[PASTEL WING(如月あいす)]アイスフレンド(嫁)03(ガール(仮))
\(.*?\)
\([^\n\)]*?\)
這兩個都不行,碰到俄羅斯套娃就挂了
像最後一個,抓到(ガー(仮))或(仮)都行
結果是半調子(ガール((仮)
若想抓出全部的()、如第三題的(如月あいす)(嫁)(ガール(仮))
請問這要怎辦?
thx
作者: LPH66 (-6.2598534e+18f)   2021-10-09 20:18:00
多層括號一般 regexp 做不到, 要有另外支援遞迴的才行但如果你只限定兩層或三層以內的話那或許有辦法
作者: microloft (微閣)   2021-10-20 06:09:00
不限括號層數,但只列最頂層結果:https://pastebin.com/XfdEnqVAhttps://i.imgur.com/bO4iHYT.png
作者: LPH66 (-6.2598534e+18f)   2021-10-30 08:47:00
嗯, (?R) 就是所謂的「另外支援遞迴」的語法這個不是所有 regexp 引擎都支援的但不限層數的問題只有在有這個支援的才寫得出來
作者: alphish ( 多麼思念 )   2020-02-18 20:10:00
\(\W*?\){1,}我錯了 這題好難

Links booklink

Contact Us: admin [ a t ] ucptt.com