Ton*_*ony 8 regex search visual-studio-2010 visual-studio regex-negation
在Visual Studio 2010中,如何搜索不在单行注释中的文本?EG如何找到"bas":
foo bar bas
Run Code Online (Sandbox Code Playgroud)
但不是
foo bar // bas
Run Code Online (Sandbox Code Playgroud)
请注意,它应该找到该行:
foo / bar / bas
Run Code Online (Sandbox Code Playgroud)
(编辑)它不应该找到该行:
foo // bar bas
Run Code Online (Sandbox Code Playgroud)
在Visual Studio查找对话框中,尝试使用此正则表达式(确保在查找选项中选择使用:正则表达式):
~(//[.:b]*)<bas>
Run Code Online (Sandbox Code Playgroud)
这应该找到所有出现的单词bas
之前没有的单词//
.
请注意,Visual Studio正则表达式语法与传统语法略有不同.你可以在这里找到参考资料.
好的,所以我问了这个问题,所以我可以回顾一下我自己的答案.
Visual Studio似乎没有典型的前瞻,后观构造.它确实有一个类似的零宽度否定断言.语法是〜(x),这意味着模式在模式中的这一点上不匹配x.使用这个结构,我提出了这个:^(.~(//))*bas
哪个工作得很好,但不会排除//行是前两个字符的行.要修复的版本是:^~(//)(.~(//))*bas