Visual Studio找到没有消息的所有Assert.IsTrue

时间:2016-01-15 18:34:31

标签: regex visual-studio-2012

我试图找到使用visual studio正则表达式(https://msdn.microsoft.com/en-us/library/2k3te2cs.aspx)所有对Assert.IsTrue的调用只传递布尔参数,例如Assert.IsTrue(参数)将是1和{{ 1}}不会' 吨。

对于简单的事情,Assert.IsTrue(parameter, "message")可以解决问题,这适用于上面提供的示例,但不适用于例如Assert.IsTrue(2> 3)进行评估的情况。为此,我尝试使用Assert.IsTrue\(([a-zA-Z ]+)\),因此它匹配的所有内容都没有","但是这只会在最后的时候过滤,我不知道如何过滤内部的逗号。

最后,我真正想要做的事情(我不确定单独使用正则表达式是否可行)是找到只有一个参数的Assert.IsTrue但是这个参数可能是一个方法打电话,所以它可能有逗号或没有逗号,类似于Assert.IsTrue\((.+[^,])\)

2 个答案:

答案 0 :(得分:1)

我不知道为什么您希望以编程方式提供解决方案,但如果您可以使用基于Visual Studio的解决方案,那么您可以查找Assert.IsTrue(parameter);的示例,右键单击该方法并选择"查找所有引用。

答案 1 :(得分:0)

从你的第二个例子中删除。+并添加一个*也应该在Assert之后直接转义句点。

Assert\.IsTrue\(([^,])*\)

至于你的扩展表达式,这样的东西可能有效。

Assert\.IsTrue\(([a-zA-Z\.])*\(.*\)\)

这可以让你找到你想要的东西。