我想從java代碼中提取所有方法調用。我寫了以下兩個正則表達式,但它們無法提取所有方法調用。從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
」。
有沒有人有任何想法作爲我應該添加到正則表達式?
這是(根據語言理論的行之有效的原則)不可能做到的使用正則表達式,這主要是因爲每次調用可能包含通話這可能包含呼... – laune
請給我建議一些替代它。 – Sangeeta
也許這篇文章的任何幫助http://stackoverflow.com/questions/2206065/java-parse-java-source-code-extract-methods – Mariano