关于如何匹配不包含行的行,或者匹配直到字符串,有很多很棒的答案。
我正在尝试将它们调整为一个正则表达式,以匹配具有特定单词且缺少特定单词的行。
我要查找的示例行:
var status = await _client.Get<Status>();
我不想找到的示例行:
await _client.GetStream().WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
因此,以'await'开头但未指定'ConfigureAwait'的每一行都应该匹配。
我已经尝试过各种方法,例如:
regex: await.*(?!Configure)
但是每当我在正则表达式中使用。*之类的东西时,它就会匹配所有内容(包括ConfigureAwait
部分)。
所以我如何告诉正则表达式解析器“匹配任何内容,但<...>”
答案 0 :(得分:1)
尝试:(?=^.*await)(?!^.+ConfigureAwait).+
说明:
(?=^.*await)
-前瞻性:断言以下内容:^
行首,后跟一个或多个任何字符(由于.+
和单词{{1}) },简明扼要:断言一行中有await
await
-否定前瞻:与上面类似,但被否定了:)断言以下行不包含(?!^.+ConfigureAwait)
ConfigureAwait
-匹配一个或多个任意字符(换行符除外)