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

作者: LaPass (LaPass)   2015-12-12 12:36:48
打算用java寫一隻程式
去做一些簡單的程式碼置換
目標語言是javascript
要從檔案中抓出特定名稱的function
像是
function foo(){
.......
.......
if(...){
.......
var f=function(){
.......
}
}else{
.......
}
.......
}
我想抓出
function foo(){

}
之間的所有字串
要我抓宣告function那一行我沒問題
要我抓括號我也沒問題
但是我不知道該要怎麼告訴regex
要抓「成對、深度不一定的括號」
作者: cutekid (可愛小孩子)   2015-12-17 14:40:00
Formal Language 好像有上到:一個是: Regular Language一個是: Context-free Language
作者: LPH66 (-6.2598534e+18f)   2015-12-25 00:12:00
但實際上常用的 RegExp 一直都是比 formal language 的Regular 要強上一些些
作者: CindyLinz (Cindy Wang)   2015-12-25 23:34:00
嗯 Perl, Ruby 的 regex 都可以作到 context-free
作者: cutekid (可愛小孩子)   2015-12-28 14:22:00
原來是這樣呀,謝謝 L 大和 C 大 ^_^
作者: eight0 (欸XD)   2015-12-29 14:04:00
如果有 indent 的話 ^(\t*)function(){.*?^\1}

Links booklink

Contact Us: admin [ a t ] ucptt.com