用JAVA正则表达式提取javascript函数体

现在有一段JS,如下,需要把里面的function分别提取出来。functionuser(username){varvalue="username:${username}... 现在有一段JS,如下,需要把里面的function分别提取出来。
function user(username) {
var value = "username : ${username}";
}

function article(article) {
var article = "article : ${article}";
for (var i = 0; i < 10; i++) {
article += i;
}
}

function channel(channel) {
if (channel != null) {
alert("channel is not null !");
}
}

我要传入一个参数,比如article ,就可以提取出
function article(article) {
var article = "article : ${article}";
for (var i = 0; i < 10; i++) {
article += i;
}
}
这个函数... 求大神帮忙!~
展开
 我来答
soloro9
2013-10-16 · 超过11用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:21.2万
展开全部
Pattern regex = Pattern.compile("function\\s*?article\\(.*?\\)\\s*?\\{[^{}]*?(\\{.*?\\})*[^{}]*?\\}", Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);

把里面的article替换成你的参数就可以了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠游04
2013-10-25 · 超过24用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:39.5万
展开全部
public void xxx(){//
File f=new File("funJS.js");
String temp=null;
String sou="";
try {
BufferedReader in=new BufferedReader(new FileReader(f));
while((temp=in.readLine())!=null){
sou+=temp;
}
} catch (Exception e) {
e.printStackTrace();
}
String source="function xx(){xx{}xx{}} function ww(){}";
//String reg2=".*?(function\\s+\\w+\\(\\)\\{\\})";
String reg="function\\s+\\w+\\(\\s*\\w*\\s*\\)\\s*\\{([^\\{\\}]*?(\\{[^\\{\\}]*\\})*)*\\}";
System.out.println(reg);
Pattern p=Pattern.compile(reg,Pattern.MULTILINE);
Matcher m=p.matcher(sou);
System.out.println(source.matches(reg));
System.out.println("………………function get ^_^");
while(m.find()){

System.out.println(m.group(0));
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式