正则表达式查找未注释的行(或匹配行不包含')

时间:2012-11-08 19:43:18

标签: .net regex

我正在尝试使用RegEx解析一些代码,我需要匹配任何包含尚未注释掉的代码的行。

例如:

Public Function SomeFunc(SomeVar As Integer) As Boolean
               Dim APSHSwitch, objDB, sql, iCnt, vADOConn, result As New Object
    '''        Dim BPSHSwitch, objDB, sql, iCnt, vADOConn, result As New Object
               'Dim CPSHSwitch, objDB, sql, iCnt, vADOConn, result As New Object\
End Function

我需要匹配:

Dim APSHSwitch, objDB, sql, iCnt, vADOConn, result As New Object

到目前为止,我有以下内容,这三个都匹配。

Dim\s
(?<varNames>([A-Z0-9]+(,\s){1})+[A-Z0-9]+)
\sAs\s
(?<newKeyWord>(New\s)?)
(?<varType>([A-Z]+))

我只需匹配第一行没有评论。我无法理解。

2 个答案:

答案 0 :(得分:0)

首先,如果您使用/ * * /或任何嵌套评论,我甚至不会尝试使用正则表达式。

但是,如果您只是寻找以"'''"开头的行,那么我会选择匹配的注释行而不是未注释的行,然后相应地调整您的条件。

前例

"^\s*'''\s*.*$

将匹配注释行

答案 1 :(得分:0)

在正则表达式的开头添加负面的后视

(?<!^\s*\')

Explanation: The line doesN'T (?<!) start with (^) any amount of white space (\s*) and an apostrophe (\').