Source Code:
METHOD check_email.
DATA: lo_regex TYPE REF TO cl_abap_regex, " Regex Object
lo_matcher TYPE REF TO cl_abap_matcher,
lv_text TYPE string,
lv_pattern TYPE string.
rv_valid = abap_true.
lv_pattern = `^[\w\-\.]+@([\w-]+\.)+[\w-]{2,}$`.
TRY.
CREATE OBJECT lo_regex
EXPORTING
pattern = lv_pattern
ignore_case = abap_true.
lo_matcher = lo_regex->create_matcher( text = iv_mail ).
IF lo_matcher->match( ) IS INITIAL.
rv_valid = abap_false. "Email not valid
ENDIF.
CATCH cx_sy_invalid_regex INTO DATA(lo_ex).
lv_text = lo_ex->get_text( ).
ENDTRY.
ENDMETHOD.