簡體   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