^( *)((unsigned *int)|(int)) *[A-Za-z_][A-Za-z_0-9]* *; *((//)| *)
^ *(unsigned +)?int +[A-Za-z_][A-Za-z_0-9]* *;( *// *.*)?
Run Code Online (Sandbox Code Playgroud)
正则表达式应该做的是过滤C中的有效int声明,不包括对保留关键字的检查.到目前为止,仅支持无符号修饰符.虽然顶部和底部的实现有什么区别?有没有第二个与第一个不匹配的情况?第一个是"正确"的引用.
如果有案件,请告诉我.我想先尝试自己修理它.
第一个将匹配一个字符串unsignedintiforgotaboutspaces;.第二个没有.
我假设你没有按照$设计结束你的正则表达式.如果没有,并且你的匹配引擎试图匹配整个字符串,那么第一个将匹配int foo; //(最后没有空格),而第二个不匹配.
这些团体都不同,但这就是Sam已经说过的.
除此之外,我认为他们应该或多或少地以相同的方式工作.