如何返回一个没有花括号的字符串? 例如,在下面的代码中我想要pattern.group(3)只匹配没有花括号的代码。
pattern = re.search('(.*)#ifdef (.*?)if(.*?)#endif(.*?){(.*?)}(.*)',codigo,re.DOTALL)
所以
#ifdef expression_1
if (condition_1)
#endif
{
//lines of code
}
用于匹配,
#ifdef SIZE == 1
if(x == 2){
//lines of code 2
}
#endif
不
答案 0 :(得分:0)
我只是围绕非捕获组中的整个花括号部分并使其成为可选项。这样你仍然可以获得一个正则表达式匹配对象,并填充其他组。
'(.*)#ifdef (.*?)if(.*?)#endif(.*?)(?:{(.*?)})?(.*)'
答案 1 :(得分:0)
其实我在寻找类似的东西
re.search('(.*)#ifdef (.*?)if([^{]*?)#endif(.*?){(.*?)}(.*)',codigo,re.DOTALL)
所以,我保证在组(3)中没有{。