*这里找的是 ¥ 最后一次出现的位置
DATA text TYPE string.
DATA result_tab TYPE match_result_tab WITH HEADER LINE.
DATA LDS_RESULT TYPE MATCH_RESULT.
DATA LDF_INDEX TYPE I.
text = `C:\Users\lofn\Desktop\TEST`.
FIND ALL OCCURRENCES OF REGEX '(?:\\)'
IN text RESULTS result_tab[].
LDF_INDEX = lines( result_tab ).
READ TABLE result_tab INTO LDS_RESULT INDEX LDF_INDEX.
WRITE: / LDS_RESULT-offset, LDS_RESULT-length.
*结果: 21 1
*-----------------------------------------------------------------------------------------------
*循环的方法也可以
*-----------------------------------------------------------------------------------------------
DATA: LDF_TEXT TYPE STRING,
LDF_LONG TYPE I,
LDF_NUM TYPE I,
LDF_TLOC TYPE I,
LDF_TLON TYPE I.
LDF_TEXT = 'C:\Users\lofn\Desktop\TEST'.
LDF_LONG = STRLEN( LDF_TEXT ).
LDF_NUM = LDF_LONG - 1.
IF LDF_TEXT+LDF_NUM(1) = '\'.
LDF_TLOC = LDF_NUM.
LDF_TLON = 1.
ELSE.
DO LDF_LONG TIMES.
CLEAR: LDF_NUM.
LDF_LONG = LDF_LONG - 1.
IF LDF_LONG <= 0.
LDF_TLON = 0.
EXIT.
ENDIF.
LDF_NUM = LDF_LONG - 1.
IF LDF_TEXT+LDF_NUM(1) = '\'.
LDF_TLOC = LDF_NUM.
LDF_TLON = 1.
EXIT.
ENDIF.
ENDDO.
ENDIF.
WRITE: LDF_TLOC, LDF_TLON.
*结果: 21 1 (在这里长度只是判断字符是否存在)