作者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/m.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