[问题] 怎抓到全部的()

楼主: 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