正则表达式比较复杂,然而会用正则表达式,秒杀很多程序员,因为他人写了一堆的烂代码,你一句就搞定了。
se24 CL_ABAP_MATCHER
练习1:
^[0-9]+abc$
^ 为匹配输出字符串的开始地位。
[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。
abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输出字符串的完结地位。
下面这个正则表达式 翻译进去就是 ^开始搜寻0到9的任何数字,并且还加一个abc结尾的。
用abap语言来测试
DATA: matcher TYPE REF TO cl_abap_matcher, match TYPE match_result, itab TYPE match_result_tab, line LIKE LINE OF itab.matcher = cl_abap_matcher=>create( pattern = '^[0-9]+abc$' text = '123abc' ).itab = matcher->find_all( ).LOOP AT itab INTO line. WRITE: / matcher->text,line-offset,line-length,matcher->text+line-offset(line-length).ENDLOOP.
运行后果:
123abc 0 6 123abc