C# & PLSQL - 通过正则表达式查找注释和字符串

Posted

技术标签:

【中文标题】C# & PLSQL - 通过正则表达式查找注释和字符串【英文标题】:C# & PLSQL - Finding Comments and Strings by RegExp 【发布时间】:2011-08-16 12:08:16 【问题描述】:

是否可以通过正则表达式来区分代码、字符串和cmets? 我正在尝试在 C# 中为 PLSQL-Code 构建格式化程序,但我无法解决问题,字符串,分别是引号( " 或 ' )也可以出现在 cmets 中,否定它们的特殊字符,反之亦然,评论指示符( -- 或 /* )出现在字符串中,作为特殊字符序列无效。 是否有解决方案,或者正则表达式只是处理此问题的错误方法?

最好的问候, 菲利普

【问题讨论】:

我想这是你最好使用解析器而不是使用 RegEx 的时候 不要忘记替代引用机制。例如:select q'['test--]' from dual;select q'!'test/*!' from dual;我用过的每个语法高亮编辑器都无法正常处理这样的字符串。 【参考方案1】:

通过研究 Perl 模块 Regexp::Common::comment 的源代码,您可能会发现如何可靠地识别 cmets。该模块还支持匹配PL/SQL cmets。

【讨论】:

以上是关于C# & PLSQL - 通过正则表达式查找注释和字符串的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 (C#):匹配 > < 或(非法 XML 字符)但仅当包含在引号内时

XML文件中的C#正则表达式

正则表达式用特定格式 C# 替换整个单词

c# 正则表达式 匹配中括号&颜色过滤

C# 中的正则表达式组

PLSQL - 帮助我的正则表达式电话号码和区号