【发布时间】:2016-04-01 16:47:16
【问题描述】:
我在 c# 中有一堆代码,其中有一些行,其中不带括号的 if 或 else 语句有一些额外的行,这些行会导致错误的行为。我正在寻找一个正则表达式来查找所有可能出现此问题的地方,以便我可以手动查找它。
澄清我的意思。在代码中有几个地方(我直到现在才发现)以下代码是错误的。
if (notInitialized)
Initialize();
AdditionalInitializationNotUseThisWhenAlreadyInitialized();
应该是
if (notInitialized) {
Initialize();
AdditionalInitializationNotUseThisWhenAlreadyInitialized();
}
我试过这个if\s*\(.*\)([\n\r\s[^{]]*.*);*,但它不仅给了我想要的结果。它也有if (notInitialized) { 部分。我几乎没有使用正则表达式的经验。
如何在不检查代码中的每个 if/else/else if 的情况下找到所有这些情况,只检查没有大括号的情况?
【问题讨论】:
-
要使用的Regex引擎是什么?
-
听起来像是 Roslyn 分析仪的工作。一个快速的谷歌发现了一些这样做的例子。
-
保存这篇文章作为一个例子,说明为什么你应该总是使用大括号。
-
经验法则,如果可行,请离开。但作为修复 google?stackoverflow.com/questions/438150/…