作者vernc (cralvin)
看板RegExp
标题[问题] 怎抓到全部的()
时间Sat Oct 9 20:15:44 2021
[macdoll(マコ(・c_・))]shutter chance!!(ラブライブ)
[しろむじ(ん坊主)]まる限定。((G)えでぃしょん)
[PASTEL WING(如月あいす)]アイスフレンド(嫁)03(ガール(仮))
\(.*?\)
\([^\n\)]*?\)
这两个都不行,碰到俄罗斯套娃就挂了
像最後一个,抓到(ガー(仮))或(仮)都行
结果是半调子(ガール((仮)
若想抓出全部的()、如第三题的(如月あいす)(嫁)(ガール(仮))
请问这要怎办?
thx
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.237.13.234 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/RegExp/M.1633781746.A.61C.html
1F:推 LPH66: 多层括号一般 regexp 做不到, 要有另外支援递回的才行 10/09 20:18
2F:→ LPH66: 但如果你只限定两层或三层以内的话那或许有办法 10/09 20:21
第三题 (如月あいす)(嫁)(ガール(仮)) 请问有办法吗?
※ 编辑: vernc (36.237.11.9 台湾), 10/10/2021 18:24:53
可惜这样变定制了、有n个pattern
两层\([^()]*?\([^()]*?\)[^()]*?\)
三层、前後再挂上去\([^()]*?\([^()]*?\([^()]*?\)[^()]*?\)[^()]*?\)
match all pattern?
※ 编辑: vernc (36.237.36.124 台湾), 10/20/2021 04:28:03
7F:→ microloft: 不限括号层数,但只列最顶层结果: 10/20 06:09
10F:推 LPH66: 嗯, (?R) 就是所谓的「另外支援递回」的语法 10/30 08:47
11F:→ LPH66: 这个不是所有 regexp 引擎都支援的 10/30 08:48
12F:→ LPH66: 但不限层数的问题只有在有这个支援的才写得出来 10/30 08:49
13F:推 alphish: \(\W*?\){1,} 02/18 20:10
14F:推 alphish: 我错了 这题好难 02/18 20:44