Visual Studio 2010中的正则表达式搜索

时间:2011-06-28 17:06:12

标签: regex vb.net visual-studio-2010

我不确定这是否可以在VS中使用,但我正在处理一个庞大的VB.NET文件,需要记录每个函数调用以进行调试。问题是,并非每个函数都包含Log命令。我正在尝试使用RegEx来查找没有日志的函数定义。

这不匹配:

Public Function Test1() as Boolean
    Log.Tracelog("Test1()")
    Return True
End Function

这将是一场比赛:

Public Function Test2() as Boolean
    Return False
End Function

我最接近的是使用以下内容:

(function|sub|property) .*\n.*~(Log\.t)

在我看来,它应该可以工作,但无论我怎么说,它仍然将每个函数作为匹配,甚至那些在函数中具有“Log.Tracelog”调用的函数。

无论如何我可以搜索找到后一种情况吗?

2 个答案:

答案 0 :(得分:1)

为什么不将debug.WriteLine方法用于要记录的功能。您还可以使用堆栈来获取方法名称:

    Private Function test1() As Boolean
    Debug.WriteLine(New System.Diagnostics.StackTrace().GetFrame(0).GetMethod.Name)
    Return False
End Function

然后消息仅在调试时输出,并且仅在您想要的方法中输出。

答案 1 :(得分:1)

试试这个:

(function|sub|property) .*\n~(.*Log\.t)

我将.*~()(preventmatch)之前移到了它内部。