본문 바로가기

SAP ABAP

[SAP ABAP] String Functions - Search (find, find_end, find_any_of, find_any_not_of)

SAP ABAP 에서 String ! 즉, 문자열 내에서

 

특정 문자를 찾는 구문에 대해서

정리를 해보려고 한다 !

 

Search Functions 에는 find 와 count 가 있는데

 

그 중 find 먼저 정리 하고

다음에 count에 대해서 정리를 해보겠당 ..!

 

 


 

-  Find

    : 문자열의 위치를 찾는 구문

 

     

       1.  find( val = text  {sub = substring}|{regex = regex} [case = case] 
                                           [off = off] [len = len] [occ = occ] ) ... 

 

   DATA(result1) = find( val = `xxx123yyy` regex = `\d+` ).

   write result1.  " 3

 

 

             ->  1번 풀이 !

 

                    val = `xxx123yyy` 에서 숫자( regex = `\d+`)

 

                   찾아 ( find )  해당  위치를  반환하는  구문

 

                    result1 = 3

 

                    * abap 은 zero index 로 위치를 판정

 


 

 

       2.  find_end( val = text regex = regex [case = case] 
                                            [off = off] [len = len] [occ = occ] ) ...

 

   DATA(result2) = find_end( val = `xxx123yyy` regex = `\d+` ).      
   
   write result2.  " 6

       

 

             ->  2번 풀이 !

 

                    val = `xxx123yyy` 에서  숫자( regex = `\d+`)

       

                   끝나는  위치를  찾아 ( find_end )  반환하는  구문

 

                    result2 = 6

 

                   (숫자 3은 5번째 자리이지만.. +1 해서 6자리부터는 숫자가 없다는 뜻인거 같ㄷ ㅏ...)

 

 


 

 

 

        3.  find_any_of( val = text  sub = substring 
                                        [off = off] [len = len] [occ = occ] ) ... 

 

 

ㅇ ㅏ 니..

find any of 가 뭔데 .. 한 번에 안 와닿아서 번역기를 돌려봤는데

          뭔가 알 것 같아 ... 짐ㅎ

구글 번역기 짱 ♥

 

   DATA(result3) = find_any_of( val = `xxx123yyy` sub   = `123` ).

   write result3.  "3

         

 

            ->  3번 풀이 !

 

                  val = `xxx123yyy` 에서  sub = `123`

 

                 하나의  위치를  찾아 ( find_any_of )  반환하는  구문

 

                  result3 = 3

 

                 (맨 처음 발견된 ` 1 ` 의 위치를 찾아서 반환하는 듯 !)

 

 

 


 

 

 

      4.  find_any_not_of( val = text  sub = substring 
                                                          [off = off] [len = len] [occ = occ] ) ... 

 

 

find any not of  도

번역기로 돌려 봄ㅎ

 

   DATA(result4) = find_any_not_of( val = `xxx123yyy` sub   = `x` ).
                   
   write result4.  " 3

         

 

           ->   4번 풀이 !

 

                  val = `xxx123yyy` 에서  sub = `x`

 

                 없는  위치를  찾아 ( find_any_not_of )  반환하는  구문

 

                  result3 = 3

 

 

 

 

참고) https://hoya3298.tistory.com/entry/ABAP-750-Builtin-Functions