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=>create( pattern = 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