正则匹配)"/>
abap查找字符串中最后一次出现的字符(正则匹配)
如何查找字符串中某字符最后一次出现的位置呢,可使用find语句,abap中可使用正则表达式Regex的语句就只有find以及replace语句了。
以下代码块表示了如何操作:
DATA: text TYPE char100,moff TYPE i,mlen TYPE i,mcnt TYPE i.
text = '123A45A678'.WRITE: / '转换前:',text.
FIND ALL OCCURRENCES OF 'A'IN textMATCH OFFSET moff "最后一次出现位置MATCH LENGTH mlen "匹配字符长度MATCH COUNT mcnt. " 计数匹配次数WRITE: / '出现位置和长度:',moff,mlen."可进一步做替换处理
REPLACE 'A' IN
SECTION OFFSET moff LENGTH mlen OF
text WITH 'B'.WRITE: / '转换后:',text.
下面是复杂的正则表达式匹配例子:
DATA text TYPE string.
DATA result_tab TYPE match_result_tab WITH HEADER LINE.text = 'Shalalala!'."匹配la,并且la之后必须是! (?:...)表示非捕获组(分组,但不捕获);()表示捕获组(分组)FIND ALL OCCURRENCES OF REGEX '(?:la)(?=!)' IN text RESULTS result_tab[].LOOP AT result_tab .WRITE: / result_tab-offset, result_tab-length.
ENDLOOP.
更多推荐
abap查找字符串中最后一次出现的字符(正则匹配)
发布评论