Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式替换C函数或typedef体_C_Regex_Function_Python 3.x_Typedef - Fatal编程技术网

Python正则表达式替换C函数或typedef体

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.

哪种正则表达式可以删除整个函数体,即使是嵌套了花括号? 到目前为止,我得到的是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.    code
12. }

提前感谢

在这种情况下,您需要使用堆栈来知道何时返回到最外层的大括号。要执行此操作,您需要将打开的大括号推到堆栈上,并在看到关闭的大括号时将其弹出。本质上基于堆栈的问题不适合正则表达式。请参阅。感谢各位的回复,看起来我必须通过有限状态自动机来实现这一点,我想避免这一点,但是。。。无论如何,谢谢你: