用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;
}
}
这个函数... 求大神帮忙!~ 展开
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;
}
}
这个函数... 求大神帮忙!~ 展开
展开全部
Pattern regex = Pattern.compile("function\\s*?article\\(.*?\\)\\s*?\\{[^{}]*?(\\{.*?\\})*[^{}]*?\\}", Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
把里面的article替换成你的参数就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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));
}
}
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));
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询