请问,用正则表达式怎么匹配主函数块(void main(){.....})?
void show();
void main()
{
for(int i=0; i <5; ++i)
{
show();
}
}
void show()
{
cout <<"ok"<<endl;
}
主要是要匹配到最后一个},这个用字符串查找处理更简单点
正则没有匹配计数器,所以不记录已经匹配的花号数量,所以不能去匹配整个main函数,但头部是可以了。
这个正则能匹配你上面的情况。由于函数的写法很多,情况复杂。如果写得标准的话还好匹配。
建议main函数放在文件的最后,这样就更容易写正则还匹配了,不然main函数后还有其它函数的定义,容易多匹配内容。
void main\(\)([\s\S]{1})*(([\s\S]}\s?){2}|; \s+})
正则说明