作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1490167212.A.FFE.html
1F:推 IKAFIRE: 抓成对括号可以用个counter,看到前括号++,後挂号-- 03/22 18:17
2F:→ IKAFIRE: counter大於0时就是括号中的内容 03/22 18:18
3F:推 MickPlaYer: 可以用Parser做 像是lex yacc之类的 03/22 23:44