在Visual Studio 2010中,如何搜索不在单行注释中的文本?例如,在以下文本中查找“bas”:
但不在其中
请注意,它应该找到这一行:
(编辑)它不应该找到以下行:
foo bar bas
但不在其中
foo bar // bas
请注意,它应该找到这一行:
foo / bar / bas
(编辑)它不应该找到以下行:
foo // bar bas
foo bar bas
foo bar // bas
foo / bar / bas
foo // bar bas
在Visual Studio的查找对话框中,尝试使用以下正则表达式(确保在查找选项中选择“使用:正则表达式”):
~(//[.:b]*)<bas>
这应该会找到所有不是以 //
开头的单词 bas
的出现。
请注意,Visual Studio 的正则表达式语法与传统语法略有不同。您可以在这里找到参考资料。
好的,我问了这个问题只是为了能够参考自己的答案。
Visual Studio似乎没有典型的向前、向后查找结构。它确实有类似的零宽度负断言。语法是~(x),这意味着该模式在此处不匹配x。使用这个结构,我想出了这个:^(.~(//))*bas
这个很好用,但不会排除以//开头的行。修复这个问题的版本是:^~(//)(.~(//))*bas
(//)(.(//))*bas - Tony