Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 包含多个~(not)部分的正则表达式_Regex_Visual Studio_Visual Studio 2005 - Fatal编程技术网

Regex 包含多个~(not)部分的正则表达式

Regex 包含多个~(not)部分的正则表达式,regex,visual-studio,visual-studio-2005,Regex,Visual Studio,Visual Studio 2005,我正在使用以下正则表达式: ~(sizeof)\(<int|long>\) 但不是: blah blah sizeof(int) blah blah 这一切都有效。现在,我想进一步而不是匹配: HMODULE (WINAPI *fnPtr)(int) = NULL; 所以我试着: ~(sizeof|fnPtr\))\(<int|long>\) 将fnPtr\)替换为(fnPtr.),使匹配括号,并使与fnPtr相关联:[\w\s]+\((int\124; long

我正在使用以下正则表达式:

~(sizeof)\(<int|long>\)
但不是:

blah blah sizeof(int) blah blah
这一切都有效。现在,我想进一步而不是匹配:

HMODULE (WINAPI *fnPtr)(int) = NULL;
所以我试着:

~(sizeof|fnPtr\))\(<int|long>\)
fnPtr\)
替换为
(fnPtr.)
,使
匹配括号,并使
fnPtr

相关联:
[\w\s]+\((int\124; long)\[\w]+

下面是一个演示:


注意:请阅读我对您帖子的评论。这是标准正则表达式,而不是VS正则表达式。您可以相应地采用它。

VS具有不同风格的正则表达式模式。我建议在其他编辑器(例如记事本++)中进行替换,然后将结果带到VS中。不是说它不能在VS中完成,但是你需要学习一种我不喜欢的不同语法。我可以在UltraEdit中尝试它——我认为它使用Perl正则表达式——但我显然不喜欢使用两个单独的程序来管理100多个文件,其中一个(应该)可以工作!我无法使用您链接到的网站,因为它需要Microsoft Silverlight。您能解释一下您的表达式的作用吗?这样我就可以尝试将其改编为VS2005了。从网络上看,[\w\s]+匹配一个或多个单词和空格。这与fnPtr行如何不匹配?我使用正匹配,而不是不匹配-我只匹配
[\w\s]+
,后跟
(int)
(long)
。我有一种感觉,这不仅仅是眼前的事情,你的编辑证实了这一点。
~(sizeof|fnPtr\))\(<int|long>\)
~(sizeof|(fnPtr.))\(<int|long>\)