Python正则表达式替换C函数或typedef体
哪种正则表达式可以删除整个函数体,即使是嵌套了花括号? 到目前为止,我得到的是re.sub'{.*?}',source但是,它不能与嵌套的括号一起工作,所以它不会删除第5行和第6行。我知道类似的问题已经在这里写过好几次了,但仍然找不到解决办法Python正则表达式替换C函数或typedef体,c,regex,function,python-3.x,typedef,C,Regex,Function,Python 3.x,Typedef,哪种正则表达式可以删除整个函数体,即使是嵌套了花括号? 到目前为止,我得到的是re.sub'{.*?}',source但是,它不能与嵌套的括号一起工作,所以它不会删除第5行和第6行。我知道类似的问题已经在这里写过好几次了,但仍然找不到解决办法 1. int foo(void){ 2. if(cond){ 3. code 4. } 5. next few 6. lines of code 7. } 10. typedef struct strfoo{ 11.
1. int foo(void){
2. if(cond){
3. code
4. }
5. next few
6. lines of code
7. }
10. typedef struct strfoo{
11. code
12. }
提前感谢在这种情况下,您需要使用堆栈来知道何时返回到最外层的大括号。要执行此操作,您需要将打开的大括号推到堆栈上,并在看到关闭的大括号时将其弹出。本质上基于堆栈的问题不适合正则表达式。请参阅。感谢各位的回复,看起来我必须通过有限状态自动机来实现这一点,我想避免这一点,但是。。。无论如何,谢谢你: