我想創建一個.NET正則表達式,它將匹配VB.NET源代碼中的引用字符串,但排除某些不需要的字符串,如XML註釋和區域中的字符串標籤等正則表達式來匹配引用負面lookbehind字符串(.NET)
這裏有一個數據樣本,表示正則表達式可以執行對一些VB.NET代碼:
#Region "Class Constructors"
''' <summary>
''' Initializes a new instance of the <see cref="MyClass" /> class.
''' </summary>
Public Sub New()
Debug.WriteLine("This string should be matched by the Regex")
End Sub
#End Region
正則表達式應該與Debug.WriteLine
方法調用中引用的字符串,而是應該忽略字符串中的區域標籤和XML註釋。還應該支持VB.NET的報價逃逸語法使用兩個連續的雙引號表示嵌入(逃脫)引號字符:
"This is a string containing an escaped quote "" character"
作爲一個起點,我有以下的正則表達式,但負回顧後試驗導致它匹配隨後的結束報價,就好像它們是開盤報價一樣。
(?<!Region\s+)"(?<Literal>(?:[^"]|"")*)"
作爲附加的精細度,這將是有益的,如果正則表達式可以完全忽略由雙引號字符表示空字符串。
有什麼建議嗎?
由於提前, 添
感謝您的回答。你說得對,這比我想象的更復雜,但你對標籤的建議給了我一個有用的線索,我認爲我可以開展工作。我可以使用相同的技術來「匹配」我想要排除的所有字符串,但只捕獲包含我所需文字的案例。 –
2011-05-25 13:47:09