问题描述
我有一个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+[static]\\s+(\\w+)\\s+(\\w+)\\(.*\\)\\n\\{'
查找方法名称,但如何查找正文,因为它可能包含多个'{','}'
?
1楼
你不会成功使用正则表达式。 你需要的是一个真正的解析器。
我推荐的解析器是 ,它易于使用和理解。
如果你需要更富有表现力的解析,总会有ANTLR
,它已经为Java构建了语法,并且很容易输出python代码。