【发布时间】:2015-09-17 05:00:59
【问题描述】:
我想从 java 代码中提取所有方法调用。我写了以下两个正则表达式,但它们无法提取所有方法调用。
Reg1:Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([a-zA-Z0-9_\\s,\\[\\]\\(\\)\\.]+\\))");
Reg2 : Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([\\s]*\\))")
输入:
"{
if ((war == null) && (config != null)) {
sb.append( &config= );
sb.append(URLEncoder.encode(config,getCharset()));
}
if ((war == null) && (localWar != null)) {
sb.append( &war= );
sb.append(URLEncoder.encode(localWar,getCharset()));
}
if (update) {
sb.append( &update=true );
}
if (tag != null) {
sb.append( &tag= );
sb.append(URLEncoder.encode(tag,getCharset()));
}
}"
输出:
getCharset getCharset getCharset append append append
我无法提取“encode”。
有人知道我应该在正则表达式中添加什么吗?
【问题讨论】:
-
这是(根据公认的语言理论原则)使用正则表达式不可能做到的,主要是因为每个调用可能包含调用,而调用可能包含...
-
请给我一些替代方案。
-
谢谢!但我想提取程序中的方法调用。
-
Java 也是如此:stackoverflow.com/questions/6751105/…
标签: java parsing javaparser