繁体   English   中英

使用正则表达式进行Oracle脚本解析

[英]Oracle Scripts parsing using regex

我正在尝试解析oracle脚本。 目的是提取函数,过程,循环,异常等的数量。最合适的方法是什么? 我目前正在使用正则表达式执行此操作。 但这似乎并没有涵盖所有情况。 我需要一些替代方法。

我创建了以下正则表达式表达式,以查找包,函数,过程,循环,异常,元数据定义和匿名块。

"create\\s+(or\\s+replace\\s+)?(package)\\s+(body\\s+)?([\\w\\.]+)" +//1-4
        "|(\\bcreate\\s+)?(\\bor\\s+)?(\\breplace\\s+)?(\\bfunction|\\bprocedure)\\s+(\\w+)" +//5-9
        "|(\\bexception)\\s" +//10
        "|(\\bcursor)\\s*(\\w+)"+//11-12
        "|(\\bloop)\\s"+//13
        "|(\\w+)\\s*([\\w\\.]+)\\s*%(ROW)?(TYPE);"+//14-17
        "|(\\bdeclare)\\s"//18

该技术是消除注释和字符串文字,然后应用正则表达式。 对我来说很好。

这是一个有趣的话题,您可以使用其他购买者。 一种流行的是ANTLR 在此定义了pl / sql的语法

您也可以看看这个答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM