作者LaPass (LaPass)
看板RegExp
標題[問題] 請問怎麼抓出遞迴的字串?
時間Sat Dec 12 12:36:48 2015
打算用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
推 cutekid: Formal Language 好像有上到: 12/17 14:40
→ cutekid: 一個是: Regular Language 12/17 14:42
→ cutekid: 一個是: Context-free Language 12/17 14:42
推 LPH66: 但實際上常用的 RegExp 一直都是比 formal language 的 12/25 00:12
→ LPH66: Regular 要強上一些些 12/25 00:12
推 CindyLinz: 嗯 Perl, Ruby 的 regex 都可以作到 context-free 12/25 23:34
推 cutekid: 原來是這樣呀,謝謝 L 大和 C 大 ^_^ 12/28 14:22
推 eight0: 如果有 indent 的話 ^(\t*)function(){.*?^\1} 12/29 14:04