我正在使用正则表达式进行文件搜索。
我正在寻找包含一个表达式的文本文件,而不是文件中的另一个表达式。我正在努力应对这一切的多线性。
示例文件:
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#正则表达式。
答案 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
会自动使匹配失败。