正则表达式匹配带负向后引用(.NET)的引用字符串
||
我正在尝试创建一个.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可以完全忽略由一对引号字符表示的空字符串,则将很有帮助。
有什么建议吗?
提前致谢,
提姆
没有找到相关结果
已邀请:
1 个回复
砷竣阿
或与其他换行符一起使用,因此您的后面看起来根本不够。从具有复杂语法的文本中有选择地提取匹配项需要一个词法分析器,或者您可能应该以不同的方式解析整个内容。 但是,您可能可以找到一个快捷方式,例如,您知道在标签