투케이2K

330. (java/자바) [유틸 파일] : getRegExpString : 정규식 수행 및 새로운 문자열 반환 본문

Java

330. (java/자바) [유틸 파일] : getRegExpString : 정규식 수행 및 새로운 문자열 반환

투케이2K 2023. 6. 24. 11:22

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getRegExpString : 정규식 수행 및 새로운 문자열 반환
    // -----------------------------------------------------------------------------------------
    public static String getRegExpString(String data, int regType) {

        /**
         * // -----------------------------------------
         * [getRegExpString 메소드 설명]
         * // -----------------------------------------
         * 1. 정규식 수행 및 새로운 문자열 반환
         * // -----------------------------------------
         * 2. 호출 방법 :
         *
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 1); // [영어 소문자만 허용]
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 2); // [영어 대문자만 허용]
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 3); // [한글만 허용]
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 4); // [숫자만 허용]
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 5); // [공백, 특수문자 모두 제거]
         * C_Util.getRegExpString("hello@@TWOK   123안녕", 6); // [특수문자 모두 제거]
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 : 정규식 수행 된 문자열 반환
         * // -----------------------------------------
         * */

        /**
         * // -----------------------------------------
         * [요약 설명]
         * // -----------------------------------------
         * 1. 정규식 패턴 ^[a-z] : 영어 소문자만 허용
         * // -----------------------------------------
         * 2. 정규식 패턴 ^[A-Z] : 영어 대문자만 허용
         * // -----------------------------------------
         * 3. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 한글만 허용
         * // -----------------------------------------
         * 4. 정규식 패턴 ^[0-9] : 숫자만 허용
         * // -----------------------------------------
         * 5. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9] : 특수문자 및 공백 전체 제거
         * // -----------------------------------------
         * 6. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s] : 특수문자 전체 제거
         * // -----------------------------------------
         */


        // [결과를 반환할 변수 선언 실시]
        String returnData = "";
        String M_LOG = "";


        // [정규식 패턴 형식 정의]
        String pattern_1 = "^[a-z]"; // 정규식 : 영어 소문자만 허용
        String pattern_2 = "^[A-Z]"; // 정규식 : 영어 대문자만 허용
        String pattern_3 = "^[ㄱ-ㅎㅏ-ㅣ가-힣]"; // 정규식 : 한글만 허용
        String pattern_4 = "^[0-9]"; // 정규식 : 숫자만 허용
        String pattern_5 = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]"; // 정규식 : 한글, 영어, 숫자만 허용 (공백, 특수문자 제거)
        String pattern_6 = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s]"; // 정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)

        
        // [인풋 값 기준으로 패턴 삽입]
        String pattern = "";
        if (regType == 1){
            pattern = pattern_1;
            M_LOG = "영어 소문자만 허용";
        }
        if (regType == 2){
            pattern = pattern_2;
            M_LOG = "영어 대문자만 허용";
        }
        if (regType == 3){
            pattern = pattern_3;
            M_LOG = "한글만 허용";
        }
        if (regType == 4){
            pattern = pattern_4;
            M_LOG = "숫자만 허용";
        }
        if (regType == 5){
            pattern = pattern_5;
            M_LOG = "공백, 특수문자 모두 제거";
        }
        if (regType == 6){
            pattern = pattern_6;
            M_LOG = "특수문자 모두 제거";
        }


        // [로직 처리 실시]
        try {

            if (C_Util.stringNotNull(data) == true && C_Util.stringNotNull(pattern) == true) { // [문자열이 널이 아닌 경우 수행]

                // for 반복문을 선언해서 문자 한글자씩 확인 실시
                for(int i=0; i<data.length(); i++) {
                    if (String.valueOf(data.charAt(i)).matches(pattern)) { // [정규식 패턴을 만족하는 경우]
                        returnData += data.charAt(i); // [문자열 추가]
                    }
                    else { // [정규식 패턴이 아닌 경우]
                        continue;
                    }
                }
            }

        }
        catch (Exception e){
            e.printStackTrace();
        }


        // [로그 출력 실시]
        ///*
        // ===============================================================
        S_Log._D_("정규식 수행 및 문자열 반환 실시", new String[]{
                "INPUT :: " + String.valueOf(data),
                "M_LOG :: " + String.valueOf(M_LOG),
                "REGEXP :: " + String.valueOf(pattern),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [결과 반환 실시]
        return returnData;
    }
 

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Util.getRegExpString(C_Util.java:5353)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 정규식 수행 및 문자열 반환 실시]
I/: ----------------------------------------------------
I/: [LOG :: INPUT :: hello@@TWOK   123안녕]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: 영어 소문자만 허용]
I/: ----------------------------------------------------
I/: [LOG :: REGEXP :: ^[a-z]]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: hello]
D///===========//: ================================================

 

반응형
Comments