[問題] 請問怎麼抓出遞迴的字串?

看板RegExp (正規表示式 Regular Expression)作者 (LaPass)時間9年前 (2015/12/12 12:36), 編輯推噓5(503)
留言8則, 4人參與, 最新討論串1/1
打算用java寫一隻程式 去做一些簡單的程式碼置換 目標語言是javascript 要從檔案中抓出特定名稱的function 像是 function foo(){ ....... ....... if(...){ ....... var f=function(){ ....... } }else{ ....... } ....... } 我想抓出 function foo(){} 之間的所有字串 要我抓宣告function那一行我沒問題 要我抓括號我也沒問題 但是我不知道該要怎麼告訴regex 要抓「成對、深度不一定的括號」 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.68.141 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1449895011.A.1A0.html mars90226: 直覺告訴我不行,Google告訴我http://goo.gl/gTmi0J 12/13 10:32

12/17 14:40, , 1F
Formal Language 好像有上到:
12/17 14:40, 1F

12/17 14:42, , 2F
一個是: Regular Language
12/17 14:42, 2F

12/17 14:42, , 3F
一個是: Context-free Language
12/17 14:42, 3F

12/25 00:12, , 4F
但實際上常用的 RegExp 一直都是比 formal language 的
12/25 00:12, 4F

12/25 00:12, , 5F
Regular 要強上一些些
12/25 00:12, 5F

12/25 23:34, , 6F
嗯 Perl, Ruby 的 regex 都可以作到 context-free
12/25 23:34, 6F

12/28 14:22, , 7F
原來是這樣呀,謝謝 L 大和 C 大 ^_^
12/28 14:22, 7F

12/29 14:04, , 8F
如果有 indent 的話 ^(\t*)function(){.*?^\1}
12/29 14:04, 8F
文章代碼(AID): #1MQwHZ6W (RegExp)
文章代碼(AID): #1MQwHZ6W (RegExp)