背景
我在尝试利用 python 正则表达式解析 java 文件。
目前遇到的问题
因为函数体中可能出现多重{},因此采用 python 的 regex。 regex.findall(r'{(?>[^{}]|(?R))}',java_file)
public void fun(int n) {
if(n > 1) {
if (n == 2) {
n = 3;
}
}
}
确实能匹配到
{
if(n > 1) {
if (n == 2) {
n = 3;
}
}
}
可我需要前面的public 和函数名fun。 在使用 public.*?{(?>[^{}]|(?R))}时,没能匹配到。
甚至使用 public{(?>[^{}]|(?R))}去匹配
public{
...
}
仍然不能匹配到。
在递归匹配式前后加东西如何实现 我对递归匹配不是很熟悉,希望***指点一下***。