투케이2K

84. (kotlin/코틀린) Regex 사용해 특정 패턴 만족 문자 출력 정규식 수행 실시 본문

Kotlin

84. (kotlin/코틀린) Regex 사용해 특정 패턴 만족 문자 출력 정규식 수행 실시

투케이2K 2022. 9. 28. 14:22

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // TODO [테스트 메소드 정의 실시]
    fun testMain(){
        Log.i("---","---")
        Log.d("//===========//","================================================")
        Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
        Log.d("//===========//","================================================")
        Log.i("---","---")


        /**
         * ------------------------------------
         * TODO [요약 설명]
         * ------------------------------------
         * 1. 정규식 패턴 ^[a-z] : 영어 소문자 허용
         * ------------------------------------
         * 2. 정규식 패턴 ^[A-Z] : 영어 대문자 허용
         * ------------------------------------
         * 3. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 허용
         * ------------------------------------
         * 4. ^[0-9] : 숫자 허용
         * ------------------------------------
         * 5. 정규식 패턴 ^[ ] or ^[\\s] : 공백 허용
         * ------------------------------------
         * */


        try{

            // ------------------------------------

            // [초기 변수 선언]
            var strData = "hello @#$%^ 투케이 2K ㅎㅎ &*()_"
            var resultData = ""

            //val pattern = Regex("^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]") // 정규식 : 한글, 영어, 숫자만 허용 (공백, 특수문자 제거)
            val pattern = Regex("^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s]") // 정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)

            // ------------------------------------

            // [for 반복문을 돌면서 문자 한글자씩 패턴 확인 실시]
            for (i in 0 .. strData.length-1 step(1)) {

                if (strData.get(i).toString().matches(pattern)){ // [정규식 패턴을 만족하는 경우]
                    resultData = resultData + strData.get(i).toString()
                }
            }

            // ------------------------------------

            // [로그 결과 출력 실시]
            Log.i("---","---")
            Log.w("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 로그 출력 결과 확인]")
            Log.i("","\n"+"[strData : "+ strData +"]")
            Log.i("","\n"+"[resultData : "+ resultData +"]")
            Log.w("//===========//","================================================")
            Log.i("---","---")

            // ------------------------------------
        }
        catch(e : Exception){
            Log.i("---","---")
            Log.e("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
            Log.i("","\n"+"[error : "+ e.message +"]")
            Log.e("//===========//","================================================")
            Log.i("---","---")
        }
    }
 

[결과 출력]

 

 

반응형
Comments