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