我正在使用以下正则表达式:
~(sizeof)\(<int|long>\)
匹配:
blah blah (int)variable blah blah
blah blah (long)variable blah blah
但不是:
blah blah sizeof(int) blah blah
这一切都有效。现在,我想进一步不匹配:
HMODULE (WINAPI *fnPtr)(int) = NULL;
所以我试过了:
~(sizeof|fnPtr\))\(<int|long>\)
但仍匹配fnPtr
行。我应该如何将正则表达式更改为不匹配该行?
(我在Visual Studio 2005中使用正则表达式搜索。)
(我已大大简化了正则表达式,因为int|long
部分确实是int|long|...
,其中...
约有40种其他类型。)
编辑:
没关系,我已经解决了。你需要这样做:
~(sizeof|(fnPtr.))\(<int|long>\)
将fnPtr\)
替换为(fnPtr.)
,以便.
与括号匹配,以便.
与fnPtr
相关联。< / p>
答案 0 :(得分:0)
试试这个:[\w\s]+ \((int|long)\)[\w ]+
以下是演示:http://regexhero.net/tester/?id=d18853f4-a737-4509-8c7b-babd0e9272d2
注意:在我的帖子中阅读我的评论。这是标准正则表达式,而不是VS正则表达式。你可以相应地采用它。