用cppcheck(pcre)正则表达式搜索模式

时间:2013-07-10 09:43:37

标签: regex cppcheck

我有一个代码片段int t.c喜欢

val =  (val1 << 8) | (val >> 8 );
val =  (val2 << 16) | (val >> 8 );
val =  (val3 << 32) | (val >> 8 );
val =  (val << 8);

如果我是grep -nhE "(<<.*|).*(>>)" t.c

,我会得到ouput
1:val =  (val1 << 8) | (val >> 8 );
2:val =  (val2 << 16) | (val >> 8 );
3:val =  (val3 << 32) | (val >> 8 );

但如果使用像./cppcheck --rule="(<<.*|).*(>>)" t.c这样的cppcheck搜索,我会得到输出

[../test/t.c:1]: (style) found ' val = ( val1 << 8 ) | ( val >> 8 ) ; val = ( val2 << 16 ) | ( val >> 8 ) ; val = ( val3 << 32 ) | ( val >>'

即显示来自第一次匹配的整个匹配线。我想在grep命令中得到结果。

请帮忙

1 个答案:

答案 0 :(得分:0)

尝试以下命令(转义|):

cppcheck --rule="<<.*?\|.*?>>" t.c

输出与grep的输出不完全相同。