SAP BASIC

[01] 자주 사용하는 정규표현식 ( Regular Expression in abap )

0v0_삐약 2024. 7. 10. 22:34
728x90

개발을 하다보면 정규표현식을 사용해야 하는 경우가 생긴다.

전화번호, 이메일 주소, 사번 등의 유효성 검사에 유용하게 사용될 수 있다.

 

전부는 아니고, 자주 사용하는 것 같은 정규 표현식만 아주 소수로 정리함! ( 추후 추가 예정)

^x, .x , [ ] 등 하나 하나 문법과 표현식을 이해하고 활용하면 너무 좋지만! 실제로 프로그램 개발할 때에는 

유용한 표현 찾아서 드르륵 할 때가 많음..ㅎㅎ

 

1. 정규표현식이란? 

문자열의 패턴을 표현하는데 사용되는 문자열로 문자,단어 등이 입력한 문자열에 있는지 확인할 때 사용

 

2. 자주 사용하는 정규표현식
: ABAP에서 정규표현식으로 유효성 체크 할 때에는 CL_ABAP_MATCHER 클래스를 사용하면 됨 

 

EX)

DATA lo_matcher TYPE REF TO cl_abap_matcher,  " CLASS
           lv_success,                           " RESULT
           lv_pattern TYPE char100,    " PATTERN
           lv_field     TYPE string.         " 대상 FIELD
 
"전화번호
lv_pattern =  '[0-9-]+$' .  
lv_field     '010-1111-1111'.
 
lo_matcher cl_abap_matcher=>createpattern lv_pattern text lv_field ).
lv_success lo_matcher->match( ).
 
IF lv_success IS INITIAL.
  WRITE 'WRONG NUMBER'.
ENDIF.


선언 :
1) matcher class
2) Result 담을 변수 : True면 lv_success에 'X'가 담김 
3) Pattern 담을 변수
4) 대상이 되는 문자열(field) 

lo_matcher=>create 메소드로 객체 생성, lo_matcer->match 메소드로 결과 확인 

아래 표의 정규표현식 > lv_pattern에 담고 실행하면 됨!

 

정규표현식 사용
REPLACE ALL OCCURRENCES OF REGEX '[^[:alnum:]]' IN lv_total  WITH space. lv_total에 있는 숫자가 아닌 문자는  공백으로 치환(삭제)
/^\d{3}-\d{3,4}-\d{4}$/.
휴대폰 번호 
/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i;

\w+@\w+\.\w+(\.\w+)?
이메일 
'IT[0-9]{4}$' 사번(4자리)

 

728x90