ABAP正規表示式 vs SPLIT INTO

i042416發表於2018-03-10

需求: 把如下通過"/"連線起來的三個字串分別解析出來。

ABAP正規表示式 vs SPLIT INTO

傳統的做法見下圖第98行的function module SKWF_UTIL_IO_FIND_BY_KEY:

ABAP正規表示式 vs SPLIT INTO

這個function module的作用就是解析用兩個/分隔開的document type: L, document class: CRM_L_ORD和document guid。

這個function module採用傳統的做法,把三個key拆分並儲存到一個內標裡,然後READ TABLE INDEX 1,2,3的方式分別取出每個key。用了42行程式碼。

ABAP正規表示式 vs SPLIT INTO

如果用正規表示式,只需1行程式碼:

ABAP正規表示式 vs SPLIT INTO

而且後者比前者快3~6倍:因為FIND REGEX是在ABAP Kernel用C++實現的,比在ABAP端做要高效。參考如下的效能測試比較結果(單位:微秒)。

ABAP正規表示式 vs SPLIT INTO
ABAP正規表示式 vs SPLIT INTO
ABAP正規表示式 vs SPLIT INTO

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

ABAP正規表示式 vs SPLIT INTO
ABAP正規表示式 vs SPLIT INTO

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2151691/,如需轉載,請註明出處,否則將追究法律責任。

相關文章