0

Oracleスクリプトを解析しようとしています。目的は、関数、プロシージャ、ループ、例外などの数を抽出することです。これを達成するための最も適切な方法は何ですか? 現在、正規表現でこれを行っています。しかし、すべてのシナリオを網羅しているわけではないようです。これには代替手段が必要です。

4

2 に答える 2

1

パッケージ、関数、プロシージャ、ループ、例外、メタデータ定義、および匿名ブロックを見つけるために、次の正規表現を作成しました。

"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

手法は、コメントと文字列リテラルを削除してから、正規表現を適用することです。それは私にとってはうまくいっています。

于 2013-11-20T08:05:25.127 に答える