Regex VisualStudio2010中的正则表达式搜索

Regex VisualStudio2010中的正则表达式搜索,regex,vb.net,visual-studio-2010,Regex,Vb.net,Visual Studio 2010,我不确定这在VS中是否可行,但我使用的是一个庞大的VB.NET文件,它需要记录每个函数调用以进行调试。问题是,并不是每个函数都有Log命令。我试图使用正则表达式来查找其中没有日志的函数定义 这不是一个匹配: Public Function Test1() as Boolean Log.Tracelog("Test1()") Return True End Function Public Function Test2() as Boolean Return False E

我不确定这在VS中是否可行,但我使用的是一个庞大的VB.NET文件,它需要记录每个函数调用以进行调试。问题是,并不是每个函数都有Log命令。我试图使用正则表达式来查找其中没有日志的函数定义

这不是一个匹配:

Public Function Test1() as Boolean
    Log.Tracelog("Test1()")
    Return True
End Function
Public Function Test2() as Boolean
    Return False
End Function
这将是一场比赛:

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”调用的函数


我可以搜索后一种情况吗?

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

    Private Function test1() As Boolean
    Debug.WriteLine(New System.Diagnostics.StackTrace().GetFrame(0).GetMethod.Name)
    Return False
End Function
然后,消息仅在调试时输出,并且仅以您想要的方法输出。

尝试以下操作:

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

我将
*
~()
(preventmatch)的前面移到了它的内部。

这是一个方便使用的代码!我对在VisualStudio中开发非常陌生,所以我不知道我可以使用函数调用来获取方法名。这将使事情变得容易得多。非常感谢。这正是我要找的!为什么移动瓷砖会改变匹配?我最近才知道我可以用表达式来查找否定词,所以我不确定它们的来龙去脉。