检测字符串是否包含一个表达式并在Visual Studio RegEx中排除另一个表达式

时间:2015-05-07 15:23:48

标签: c# regex visual-studio-2013

我正在使用正则表达式进行文件搜索。

我正在寻找包含一个表达式的文本文件,而不是文件中的另一个表达式。我正在努力应对这一切的多线性。

示例文件:

Here is a Target Phrase that I want to find and
here is a madeupword that if it is missing 
means that the file is of interest.

我想查找表达式Target Phrase但不存在madeupword的文件。

我希望有什么东西沿着

(Target Phrase)(?![.\s]*madeupword)

将是我需要的,但没有快乐......

理想情况下,这将是Visual Studio 2013可以在“在文件中查找”对话框中处理的正则表达式,但我将使用可在快速文件夹扫描控制台应用程序中使用的C#正则表达式。

1 个答案:

答案 0 :(得分:1)

您可以在VS中的“查找”对话框中使用此表达式来查找Target Phrase后面没有madeupword的字符串:

(Target Phrase)(?![\s\S\r]*madeupword)

在C#中,您只需要(?s)(Target Phrase)(?!.*madeupword)

或者如果它后跟madeupword

,则找到该单词
(Target Phrase)(?=[\s\S\r]*madeupword)

这是我在VS2012 查找... 对话框中匹配换行符的唯一方法。

删除\r会自动使匹配失败。

enter image description here