VB.NET ソース コードの引用符で囲まれた文字列に一致する .NET Regex を作成しようとしていますが、XML コメントの文字列やリージョン ラベルなどの特定の不要な文字列を除外しています。
以下は、Regex が実行される可能性のある 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 コメントの文字列は無視する必要があります。また、2 つの連続する二重引用符を使用して、埋め込まれた (エスケープされた) 引用符文字を表す VB.NET の引用符エスケープ構文もサポートする必要があります。
"This is a string containing an escaped quote "" character"
出発点として、次の正規表現を試してみましたが、否定の後読みにより、開始引用符であるかのように後続の終了引用符に一致します。
(?<!Region\s+)"(?<Literal>(?:[^"]|"")*)"
追加のフィネスとして、正規表現が引用符のペアで表される空の文字列を完全に無視できると便利です。
何か提案はありますか?
前もってありがとう、ティム