我正在尝试创建一个 .NET 正则表达式,它将匹配 VB.NET 源代码中的引用字符串,但不包括某些不需要的字符串,例如 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 注释中的字符串。它还应该支持 VB.NET 的引号转义语法,该语法使用两个连续的双引号来表示嵌入(转义)的引号字符:
"This is a string containing an escaped quote "" character"
作为一个起点,我已经尝试了以下正则表达式,但负面的后视导致它匹配后续的结束引号,就好像它们是开始引号一样。
(?<!Region\s+)"(?<Literal>(?:[^"]|"")*)"
作为一项额外的技巧,如果 Regex 可以完全忽略由一对引号字符表示的空字符串,那将会很有帮助。
请问有什么建议吗?
在此先感谢,蒂姆