我用過的正規表示式(ABAP)

2021-10-24 14:09:17 字數 1414 閱讀 5461

簡單的如只包含數字或字母等,可以使用表示式ca或co實現;

正規表示式匹配可以用關鍵字find,match或count實現。

列表

目前只有乙個

功能表示式

備註非法字元

[^[:print:]]sap系統不支援的字元

中文[u4e00-u9fa5]中文漢字和符號

constants:

" lc_chinese_regex type string value '[^u4e00-u9fa5]+$', "匹配漢字及符號

lc_em_char type string value

'()、。、,、』'

,"全形正規表示式

lc_lower_case type string value 'qwertyuiopasdfghjklzxcvbnm' ##no_text,

lc_common_regex type string value '[0-9a-z、-]'

" lc_em_regex type string value

'[()、。、,、』]'

."全形符號

"漢字和半形前台顯示兩個字元,字母和半形顯示為1個字元

"漢字只能和全形字符組合,英文只能和半形字元組合

"因此,通過計算字元長度和顯示長度的餘數,即可判斷是否合法

data

(lv_name_display_length)

= cl_abap_list_utilities=

>dynamic_output_length(

-zzbpnm )

.data

(lv_name_char_strlen)

= strlen(

-zzbpnm )

."計算通用字元長度(在中英文名稱中均可能出現)

data(lv_common_length) = count( val = -zzbpnm regex = lc_common_regex ).

"減去通用字段長度後,計算餘數

data

(lv_div)

=( lv_name_display_length - lv_common_length )

mod( lv_name_char_strlen - lv_common_length )

.if lv_div ne 0.

message e041 into

data

(lv_zmdg_041)

. lv_error_message = lv_error_message &&

'/'&& lv_zmdg_041.

endif.

ABAP 正規表示式 簡介

abap 支援擴充套件正規表示式 ere 可以支援以下關鍵字 find replace也可以作為下列函式 built in function 的變數 count,count contains find,find match matches replace substring,substring 以下...

ABAP正規表示式 vs SPLIT INTO

需求 把如下通過 連線起來的三個字串分別解析出來。傳統的做法見下圖第98行的function module skwf util io find by key 這個function module的作用就是解析用兩個 分隔開的document type l,document class crm l or...

我的正規表示式

1 應用例項 將字串中的 n 替換為 乙個是char,乙個是string,一般方法 replace 顯然不行,正在鬱悶,難道要用陣列迴圈?想到了正規表示式,哈哈哈哈,一陣淫笑。public static system.string replace system.string input system...