2014-03-26 45 views
1

我想使用正則表達式在.VB文件中提取所有常量,它們的作用域,數據類型等。我使用正則表達式: -在vb.net避免使用單引號(註釋行)的行

(\w*) Const (\w+) As (\w+)

,當我測試了一個.vb文件,我得到的結果如下: -

Public Const DOT As String = "." 
'Private Const SW_HIDE As Short = 0 

我想避免被註釋掉線(在這個例子中是第二個)。對於我已經修改了正則表達式爲: -

[^'](\w*) Const (\w+) As (\w+) 

但它在輸出註釋行仍然給。請幫忙。非常感謝你。

+0

什麼語言您正則表達式的校驗碼? VB.NET也? –

+0

是的。這裏是我正在使用的兩行代碼: - Dim strPattern As String =「(\ w *)Const(\ w +)As(\ w +)」Dim oRegEx As Regex = New Regex(strPattern,RegexOptions.Compiled)' – user3460186

+0

你有沒有嘗試過負面後顧?編輯:另外,先在這裏測試你的正則表達式:http://www.regexr.com/ – Brandon

回答

0

試試這個正則表達式:

^(?!\s*')(\w*) Const (\w+) As (\w+) 

這是利用負lookahead(?!\s*')檢查,是否存在不可選的多個空白頻段(\s*)行開始的任意'字符。我不知道VB.Net,所以試試這個在Online Demo

0

試試這個:

^[^'](\w*) Const (\w+) As (\w+) 
+0

對不起,但上述表達式都不起作用。 – user3460186

+0

我想我有點接近但仍需要一些幫助。這裏是避免註釋行在vb代碼中的正則表達式: - '(?<!'\ w *)Const(\ w +)As(\ w +)' 現在我能夠避免註釋行,但可以爲其他有效行提取訪問說明符。例如,我不能從先前提供的代碼的第1行中提取「公共」字符串。請幫助 – user3460186