【发布时间】:2016-04-19 06:57:24
【问题描述】:
我有一个要在 Visual Studio 中搜索的特定模式。
基本上,我想搜索包含await,但在语句末尾缺少ConfigureAwait 的行。
我有一些模式可以在 regex101.com 等正则表达式测试器中使用,但我无法让这些模式在 Visual Studio 搜索中使用。例如,模式(?s)^(.)*(await)((?!ConfigureAwait).)*(.)?(;)。
我做错了什么?
编辑 - 我想在我的项目中查找行,例如
await DoSomeCoolThings(x, y);(即缺少ConfigureAwait(...)。)
但我不想匹配以下行:
await DoSomeCoolThings(x, y).ConfigureAwait(false);
【问题讨论】:
-
删除
/.../... 输入是什么样的?请至少发布一些示例字符串或分享到在线测试器小提琴的链接。另外,删除(?s)并将.替换为[\s\S\r]。请注意,(.)*是量化组的一种糟糕方法——因为一个符号被无限次捕获,它为正则表达式引擎带来了冗余开销。使用(.*)(如果您需要捕获)。我认为大多数捕获组在这里都是多余的(直到你澄清你在做什么)。 -
(?=.*await)(?!.*ConfigureAwait)也应该可以工作 -
抱歉,斜线不是模式的一部分。我已将它们从我的示例模式中删除。
-
@rock321987 - 这行得通。谢谢!
-
很高兴,它对你有用
标签: regex visual-studio async-await configureawait