作者a2975313 (GN)
看板C_Sharp
標題[問題] regular expression針對語法格式的定義
時間Wed Mar 22 15:20:09 2017
因為需要解析javascript程式碼"函式定義"的內容, 所以直接想到用正規式擷取.
想問一下如何用正規式定義函式的pattern, 目前卡在大括號{}上面.
因為function裡面有if for while也會有自己的大括號.
如果pattern是定成"function...\{[\s\S]*\}"會變成抓出1~13行的內容..
但我只需要1~8與12~13行的內容就好, 請問這是否有解, 謝謝.
1.. function methodA()
2.. {
3.. var a='';
4.. if(0==0){...}
5.. for(i=0;i<=10;i++){...}
6.. while(0==0){...}
7.. methodB();
8.. }
9..
10. methodA();
11.
12. function methodB()
13. {...}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.3.154
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1490167212.A.FFE.html
推 IKAFIRE: 抓成對括號可以用個counter,看到前括號++,後掛號-- 03/22 18:17
→ IKAFIRE: counter大於0時就是括號中的內容 03/22 18:18
推 MickPlaYer: 可以用Parser做 像是lex yacc之類的 03/22 23:44