是否有一种方法可以在visual studio中执行搜索(查找/在文件中查找),并排除注解中的匹配项?虽然有时候它很有用,但有时候却正好相反。对于所有显示的选项,我认为它应该在那里,但如果它在那里,我就找不到它了。顺便说一句,我使用的VS 2010/2012大约是一样的。
3bygqnnd1#
下面是适用于较新版本Visual Studio的正则表达式:
^(?![ \t]*//).*your_search_term
请注意,自VS 2012起语法发生了变化:Visual Studio 2012使用. NET Framework正则表达式查找和替换文本。在Visual Studio 2010和早期版本中,Visual Studio在"查找"和"替换"窗口中使用自定义正则表达式语法。参考:https://msdn.microsoft.com/en-us/library/vstudio/2k3te2cs(v=vs.110).aspx
k2fxgqgv2#
你可以尝试如下正则表达式:
^~(:b*//).*your_search_term
简要说明:
^
~(
:b*
//
)
.*
your_search_term
saw this at another post.
z9smfwbn3#
我不认为这是VS中的一个选项。你可以尝试使用正则表达式,但这会受到你的创造力的限制。使用正则表达式搜索不以//开头的行似乎并不完全困难。
biswetbf4#
您可能指的是*任何注解,*两者都是单行-(//)和多行**(/**/)。其他的答案只处理单行注解,所以这里是我的VS代码兼容的Regex ,同时用于这两个:
/**/
(?<!//.*)(?!(/\*).*)YOUR_SEARCH_TERM(?![^/\*]*?\*/)
说明:(?<!//.*)是针对单行注解(//)的负向后查找(?!(/\*).*)使前面带有/*的搜索词无效(?![^/\*]*?\*/)使您的搜索项无效,如果它后面跟有*/(在您的搜索项和它本身之间缺少/*,因为这样您的搜索项将在/* */的 * 外部 ,并且您希望它再次匹配)。要在VS代码中使用它,只需输入Ctrl + F,然后在弹出的搜索字段中勾选regex图标( void * 是示例性搜索词):
(?<!//.*)
(?!(/\*).*)
/*
(?![^/\*]*?\*/)
*/
Ctrl
F
4条答案
按热度按时间3bygqnnd1#
下面是适用于较新版本Visual Studio的正则表达式:
请注意,自VS 2012起语法发生了变化:
Visual Studio 2012使用. NET Framework正则表达式查找和替换文本。在Visual Studio 2010和早期版本中,Visual Studio在"查找"和"替换"窗口中使用自定义正则表达式语法。
参考:https://msdn.microsoft.com/en-us/library/vstudio/2k3te2cs(v=vs.110).aspx
k2fxgqgv2#
你可以尝试如下正则表达式:
简要说明:
^
~(
非以下内容:b*
任意数量的空格,后跟//
注解开始)
非结束.*
前面可以出现任何字符your_search_term
您的搜索词:-)saw this at another post.
z9smfwbn3#
我不认为这是VS中的一个选项。你可以尝试使用正则表达式,但这会受到你的创造力的限制。使用正则表达式搜索不以//开头的行似乎并不完全困难。
biswetbf4#
您可能指的是*任何注解,*两者都是单行-(
//
)和多行**(/**/
)。其他的答案只处理单行注解,所以这里是我的VS代码兼容的Regex ,同时用于这两个:
说明:
(?<!//.*)
是针对单行注解(//
)的负向后查找(?!(/\*).*)
使前面带有/*
的搜索词无效(?![^/\*]*?\*/)
使您的搜索项无效,如果它后面跟有*/
(在您的搜索项和它本身之间缺少/*
,因为这样您的搜索项将在/* */的 * 外部 ,并且您希望它再次匹配)。要在VS代码中使用它,只需输入
Ctrl
+F
,然后在弹出的搜索字段中勾选regex图标( void * 是示例性搜索词):