ABAP中正規表示式的簡單使用 --- 轉自老白的部落格 Barry.bai
在一個論壇上面看到有人在問正規表示式的問題,特舉例簡單說明一下。
另外,REPLACE也支援REGEX關鍵字。
最後:只能是ECC6或者更高版本才可以(ABAP supports POSIX regular expressions as of Release 7.00)
REPORT z_test.
DATA: str TYPE string ,
result_tab TYPE match_result_tab ,
wa LIKE LINE OF result_tab.
*找出STRING裡面的雙位元組字元
str = 'abc我啊adfsf們'.
FIND ALL OCCURRENCES OF REGEX '[^x00-xff]*' IN str RESULTS result_tab.
LOOP AT result_tab INTO wa.
WRITE / str+wa-offset(wa-length).
ENDLOOP.
*找出STRING裡面的單位元組字元
str = 'abc我啊adfsf們'.
FIND ALL OCCURRENCES OF REGEX '[x00-xff]*' IN str RESULTS result_tab.
WRITE / '-----'.
LOOP AT result_tab INTO wa.
WRITE / str+wa-offset(wa-length).
ENDLOOP.
*找出STRING裡面的IP地址
str = 'IP1:172.16.32.12 IP2:192.168.1.1 '.
FIND ALL OCCURRENCES OF REGEX 'd+.d+.d+.d+' IN str RESULTS result_tab.
WRITE / '-----'.
LOOP AT result_tab INTO wa.
WRITE / str+wa-offset(wa-length).
ENDLOOP.
*找出STRING裡面的***-********格式的電話號碼
str = 'IP1:172.16.32.12 021-12345678 '.
FIND ALL OCCURRENCES OF REGEX 'd{3}-d{8}|d{4}-d{7}' IN str RESULTS result_tab.
WRITE / '-----'.
LOOP AT result_tab INTO wa.
WRITE / str+wa-offset(wa-length).
ENDLOOP.
*找出STRING裡面的15/18位身份證號碼
str = 'IP1:172.16.32.12 3722198003041234 '.
FIND ALL OCCURRENCES OF REGEX 'd{15}|d{18}' IN str RESULTS result_tab.
WRITE / '-----'.
LOOP AT result_tab INTO wa.
WRITE / str+wa-offset(wa-length).
ENDLOOP.
matcher TYPE REF TO cl_abap_matcher,
match TYPE c .
wa LIKE LINE OF result_tab.
EXPORTING
pattern = 'd+.d+.d+.d+'
ignore_case = 'X'.
CALL METHOD regex->create_matcher
EXPORTING
text = p_input
* table =
RECEIVING
matcher = matcher .
CATCH cx_sy_matcher .
ENDTRY.
CALL METHOD matcher->match "是否完全匹配
RECEIVING
success = match.
CATCH cx_sy_matcher .
ENDTRY.
RECEIVING
matches = result_tab.
LOOP AT result_tab INTO wa.
WRITE / p_input+wa-offset(wa-length).
ENDLOOP.
matcher = cl_abap_matcher=>create( pattern = 'w+(.w+)*@(w+.)+(w{2,4})'
ignore_case = 'X'
text = email ).
IF matcher->match( ) IS INITIAL.
MESSAGE 'Wrong Format' TYPE 'I'.
ELSE.
MESSAGE 'Format OK' TYPE 'I'.
ENDIF.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11011430/viewspace-1017738/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 彈出SE61所寫文字的的文字框 --- 轉自老白的部落格Barry.baiAI
- JavaScript中正規表示式的使用JavaScript
- Java中正規表示式的使用Java
- 詳解Javascript中正規表示式的使用JavaScript
- postgres中正規表示式及轉義
- SQLSERVER中正規表示式封裝使用SQLServer封裝
- JS中正規表示式研究(一)JS
- JavaScript學習系列部落格_35_JavaScript 正規表示式的使用JavaScript
- php中正規表示式中的特殊符號PHP符號
- javascript中正規表示式的基礎語法JavaScript
- linux 中正規表示式中?號的作用Linux
- Oracle SQL 語句中正規表示式的應用OracleSQL
- JS 中正規表示式必知必會JS
- java和js中正規表示式的用法和區別JavaJS
- c#中正規表示式 和 集合 的知識點C#
- 正規表示式使用replace()函式簡單介紹函式
- Java 正規表示式的簡單應用.Java
- C++ 11 中正規表示式使用示例及原始碼分析C++原始碼
- JAVA中正規表示式匹配,替換,查詢,切割的方法Java
- 簡單介紹python中使用正規表示式的方法Python
- JScript中正規表示式用法詳解 replaceJS
- 在自定義Screen上利用標準選擇螢幕的兩個方法 --- 轉自老白的部落格
- ABAP正規表示式 vs SPLIT INTO
- 現代 ABAP 程式語言中的正規表示式
- javascript的正規表示式的test()方法簡單介紹JavaScript
- oracle的正規表示式(regular expression)簡單介紹OracleExpress
- Java正規表示式簡單介紹Java
- 超簡單!正規表示式總結
- 簡單學習 JavaScript 正規表示式JavaScript
- 使用Lambda表示式處理簡單的業務
- 十六進位制在正規表示式中的使用簡單介紹
- 正規表示式單行、多行模式簡介(使用說明)模式
- 簡單介紹Idea使用正規表示式批量替換字串的方法Idea字串
- 正規表示式使用詳解(轉)
- [python爬蟲] 正規表示式使用技巧及爬取個人部落格例項Python爬蟲
- 第七章——字串(簡單的正規表示式匹配器)字串
- asp.net中RegularExpressionValidator控制元件中正規表示式用法ASP.NETExpress控制元件
- 在JAVA中使用正規表示式 (轉)Java