我已经通过了很多例子和帖子,但没有一个是有效的。
我想找到一个出现一个单词而另一个单词出现的行。
使用C#
在Regex.IsMatch
中工作 - 我提取了一个文件并在该文件上运行正则表达式。
Match if "WriteLine" found without "ALLOWEDTAG".
这不匹配:
Console.WriteLine("FOUND line without"); // ALLOWEDTAG
这将匹配
Console.WriteLine("FOUND line without"); // anything.
我尝试了以下内容:
TagRegex = @"WriteLine.^((?!ALLOWED TAG).)*$";
TagRegex = @"\<WriteLine(:Wh+~(ALLOWED_TAG):w=:q)+:Wh*";
TagRegex = @"^(?!.[\s\S]*ALLOWEDTAG).[\s\S]*WriteLine.*$";
TagRegex = @"^(?!.*ALLOWEDTAG).*WriteLine.*$";
TagRegex = @"((?!ALLOWEDTAG).)*WriteLine.*";
TagRegex = @"((.*WriteLine.*)(?!.*ALLOWEDTAG.*))";
什么了?
答案 0 :(得分:4)
答案 1 :(得分:2)
您对此的第四次尝试很简单,您只需要启用multi-line修饰符,这会导致^
和$
锚点与每行的开头/结尾相匹配。
@"(?m)^(?!.*ALLOWEDTAG).*WriteLine.*$"