2013-04-22 29 views
2

好日子RegEx Gurus,在C源代码中查找按位与操作

我只想请求一些关于REGEX的帮助。

如何在C源代码中找到Bitwise &运算符?

目前我已经有这个表达式:

[^\&=](\&)[^\&] 

案例#1:应该返回:3(目前返回3,这是OK)

    : 
u1_dfsmd_igbt_sdown = (u1r_dfsmd_igbt[IGBT_WSDOWN] & 
u1r_dfsmd_igbt[IGBT_SSDOWN] & 
u1r_dfsmd_rcv_wsdown & 
u1r_dfsmd_rcv_ssdown) ; 
       : 

案例#2:应返回:0 (目前退货1,不好)

    : 
scanf ("%d", &i) 
       : 

案例#3:应该返回:0(当前返回0,这是OK)

    : 
if (xx && yy && zz) { 
//Some statements here 
} 
       : 

我是初学者W /正则表达式(我现在的正则表达式可能是蛮力)

在此先感谢您的帮助。

+4

不是一个正则表达式的工作。获取/写入解析器。 – nhahtdh 2013-04-22 08:08:14

+1

_您需要在这里完成这项工作,并为'&'匹配确切的准则,然后_then_某人可能能够帮助正则表达式。如果你不想要一个匹配,如果'i'遵循'&',那么只需将它添加到否定的字符类。 – MikeM 2013-04-22 08:24:11

+0

我会尝试将“,”添加到否定字符类。感谢提示! – 2013-04-22 09:06:59

回答

0

这不够吗?

\s\&=?\s 

这是一个 '&' 通过任何空白字符[\吨\ n \ X0B \˚F\ R]可选的 '=' 为前缀,并用任何空白字符后缀(包括新行)。我没有测试,也不知道所有的标准,但我希望它有帮助。

+0

并非所有的人都使用空白,有些人写了'if(n&1)'例如。 – 2013-05-15 14:54:01