gpt4 book ai didi

java - 如何在python中使用递归从java代码中解析方法体?

转载 作者:行者123 更新时间:2023-12-02 06:05:36 25 4
gpt4 key购买 nike

我有一个java代码,我需要在python中解析它。为此我在python中使用正则表达式。我成功地找到了方法名称,但要找到方法主体,我需要编写带条件的正则表达式。对于前。我正在解析的代码?

class abc
{
public void main()
{
//some code

if(blabla)
{

}
else
{

}
//some code

}
public static int method1(int asd,int bad)
{
//body
}

}

我需要输出为 [(int,method1,"body"),('void',main,"body")]所以我写了正则表达式r'[public|private|protected]\s+[静态]\s+(\w+)\s+(\w+)\(.*\)\n\{'找到方法名,但是如何找到方法体,因为它可能包含多个 '{','}'

最佳答案

使用正则表达式不会取得成功。您需要的是一个实际的解析器。

我推荐的解析器是 pyparsing ,它易于使用和理解。

如果您需要更具表现力的解析,总是有ANTLR,它已经构建了 Java 语法并可以轻松输出 python 代码。

关于java - 如何在python中使用递归从java代码中解析方法体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com