如何在Visual Studio搜索框中检索包含“strA”但不包含“strB”的文档的所有行?正则表达式:如何检索Visual Studio中包含strA但不包含strB的所有行
回答
你会使用Negative lookarounds,但表达的是非常复杂的,如果你不知道这个词的预期位置(甚至顺序)。 做你知道订单或模式?
否则我建议你使用另一种工具,它可以很容易地环(或列表COMP)通过文件里逐行做INSTR或包含或其他简单,更快,逻辑测试...
对于Visual Studio 2012(以及更高版本):
^(?!.*strB).*strA.*$
说明:
^ # Anchor the search at the start of the line
(?!.*strB) # Make sure that strB isn't on the current line
.*strA.* # Match the entire line if it contains strA
$ # Anchor the search to the end of the line
你可能想在正则表达式的末尾添加(?:\r\n)?
如果你也想删除回车/行与行的其余部分饲料一起。
这工作。我不得不扩展到支持排除多个字符串,这可以解释为例如。 '^(?!* STRB)(?!。* STRC)(?!。* STRD)。* STRA。* $'。 – DuckMaestro 2015-11-25 02:59:21
我要去承担搜索框实际上接受一般的正则表达式。使用负前瞻:
(?!^.*strB.*$)strA
你需要设置多选项(^
和$
比赛在开始的线/结束)。如果无法使用对话框选项进行设置,请尝试:
(?m)(?!^.*strB.*$)strA
这可能是该引擎中的默认模式。
你需要锚定整个正则表达式,而不仅仅是前瞻。这意味着在'strA'前面放置'^'*在lookahead之外并添加另一个'。*'。但是,不需要将正则表达式的任何部分定位到该行的* end *(即'。* $'可以去)。 – 2010-02-06 12:10:05
嗯,我不知道。当我现在看它时,我将它写为“如果一行不包含strB,则匹配strA”。对我来说似乎是正确的,因为我们一行一行地匹配。我认为。阅读旧的正则表达式会让我的大脑受伤。 – wds 2010-02-06 12:36:20
对于Visual Studio 2010(和以前的版本):
Visual Studio的搜索框有正则表达式的语法自己的,离奇的版本。这个作品表达的要求:
^~(.*strB).*strA
^
一行的开头匹配。 (通常对于文本编辑器,不存在“多行”选项; ^
和$
总是在行边界处匹配。)
.
匹配除换行符以外的任何字符。 (通常情况下,似乎没有让单点匹配换行符的“单行”或“点全部”模式。)
~(...)
是“防止匹配”构造,等效(据我所知)由另一个反应中使用的负先行((?!...)
)。
仅供参考,从Visual Studio 2012开始,dotNet正则表达式引擎现在用于搜索,因此奇怪的语法现在应该消失。很好的答案,但只知道你使用的VS版本。 – redcalx 2013-09-18 13:59:54
在Visual Studio 2010 SP1Rel中测试时,如果“strB”可能在“strA”后面,则必须修改此答案。尝试'^〜(。* strB)。* strA〜(。* strB)'。或'〜(strB)。* strA。*〜(strB)'。 – ToolmakerSteve 2017-09-12 18:37:44
这为我工作与Visual Studio 2010:
^+ ^(STRB)] +(STRA)+ [^(STRB)] + $
- 1. 正则表达式如果包含XXX但不包含XXX
- 2. 正则表达式查找包含路径但不包含“。”的所有hrefs。 (点)
- 3. 正则表达式来检索所有不包含特定字符串的URL
- 4. Java正则表达式:如何包含' - '
- 5. 正则表达式:不包含
- 6. 正则表达式:不包含子串
- 7. 正则表达式不包含
- 8. 正则表达式帮助不包含
- 9. 正则表达式不包含00
- 10. 正则表达式:不包含
- 11. 正则表达式可能包含一个组或不包含
- 12. 正则表达式包含字符串,不包含另一个
- 13. 不包含引号但可以包含转义引号的正则表达式
- 14. 正则表达式排除不包含字线,但有些话
- 15. Visual Studio中的正则表达式:如何注释掉所有包含“xyz”的行?
- 16. 正则表达式C#:正则表达式,不包含子串,但与_number
- 17. 正则表达式 - 匹配所有不包含...(App引擎)
- 18. 包含“?”的Oracle正则表达式
- 19. 如果URL包含一个模式但不包含另一个模式,则匹配URL的正则表达式
- 20. 正则表达式“包含”另一个正则表达式
- 21. JavaScript的正则表达式:字符串包含此,但不是
- 22. 开始但不包含的正则表达式
- 23. 包含mailaddresses但不值的正则表达式=
- 24. 正则表达式:匹配所有包含单词的单词
- 25. 列出包含正则表达式的所有Emacs变量
- 26. 如何创建正则表达式来查找包含cflocation但不包含addtoken的代码行?
- 27. VS2013:当正则表达式包含\
- 28. 正则表达式字符串包含
- 29. 正则表达式查找包含在“”
- 30. 正则表达式IsOne vs包含
你在做这个。一个命令行,或在一些代码?哪种操作系统或语言? – 2009-11-25 07:03:20
在visual studio搜索框中。 – Ricky 2009-11-25 07:10:41