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 在VisualStudio2010中,如何搜索不在单行注释中的文本?_Regex_Visual Studio_Visual Studio 2010_Search_Regex Negation - Fatal编程技术网

Regex 在VisualStudio2010中,如何搜索不在单行注释中的文本?

Regex 在VisualStudio2010中,如何搜索不在单行注释中的文本?,regex,visual-studio,visual-studio-2010,search,regex-negation,Regex,Visual Studio,Visual Studio 2010,Search,Regex Negation,在VisualStudio2010中,如何搜索不在单行注释中的文本?例如,如何在中找到“bas”: 但不是在 foo bar // bas 请注意,它应该找到以下行: foo / bar / bas foo // bar bas (编辑)并且不应找到以下行: foo / bar / bas foo // bar bas 在Visual Studio“查找”对话框中,尝试使用此正则表达式(请确保在“查找选项”中选择“使用:正则表达式”): ~(//[:b]*) 这将查找所有出现的单词b

在VisualStudio2010中,如何搜索不在单行注释中的文本?例如,如何在中找到“bas”:

但不是在

foo bar // bas
请注意,它应该找到以下行:

foo / bar / bas
foo // bar bas
(编辑)并且不应找到以下行:

foo / bar / bas
foo // bar bas

在Visual Studio“查找”对话框中,尝试使用此正则表达式(请确保在“查找选项”中选择“使用:正则表达式”):

~(//[:b]*)
这将查找所有出现的单词
bas
,这些单词前面没有
/


请注意,VisualStudio正则表达式语法与常规语法略有不同。你可以找到参考资料。

好的,所以我问了这个问题,只是为了能回到我自己的答案


VisualStudio似乎没有典型的“向前看”和“向后看”结构。它确实有一个类似的零宽度否定断言。语法是~(x),这意味着模式在模式的这一点上与x不匹配。使用这个结构,我提出了:
^(.~(/)*bas
,它工作得非常好,但不会排除//是行中前两个字符的行。要修复的版本是:
^~(//)(.~(//)*bas

好的,所以我问了这个问题,只是为了能参考我自己的答案。不幸的是,我不得不等8个小时来回答我自己的问题。VisualStudio似乎没有典型的“向前看”和“向后看”结构。它确实有一个类似的零宽度否定断言。语法是~(x),这意味着模式在模式的这一点上与x不匹配。使用这个构造,我提出了:^(.~(/)*bas,它工作得非常好,但与//是行中前两个字符的行不匹配。要修复的版本是:^~(/)(.~(/)*你问了一个问题只是为了自己回答吗?那么,你发表评论是因为我已经回答了你的问题吗?:)这在示例中不起作用:foo//bar/bas,其中bas位于注释中,因此不应找到。不过,谢谢你的回答和链接。此外,<和>单词边界可能是不必要的,尽管这取决于您想要什么。对于VS2012用户:“Visual Studio 2012使用.NET Framework正则表达式查找和替换文本。在Visual Studio 2010和早期版本中,Visual Studio在查找和替换窗口中使用自定义正则表达式语法”。资料来源: