Paradox Simulation

728x90
반응형

정규식을 사용할때 가독성이 참.. 구려서 생긴 밈

 

소개

Java는 문자열에서 특정한 패턴을 찾거나 검증하거나 가공하는 데 사용되는 정규식(regular expression)을 지원합니다.

정규식은 문자열을 다룰 때 매우 유용한 도구이며, Java에서도 많이 사용됩니다.

이번 글에서는 Java에서 정규식을 사용하는 기초적인 방법에 대해 알아보겠습니다.

 

정규식 패턴

정규식 패턴은 검색하려는 문자열 패턴을 정의하는 표현식입니다.

Java에서는 java.util.regex 패키지를 이용하여 정규식을 사용할 수 있습니다.

정규식 패턴을 만드는 방법은 다음과 같습니다.

 

import java.util.regex.Pattern;

// 정규식 패턴 만들기
String regexPattern = "정규식 패턴";
Pattern pattern = Pattern.compile(regexPattern);

 

위 코드에서 "정규식 패턴" 부분을 사용자가 원하는 정규식 패턴으로 바꾸어주면 됩니다.

 

 

정규식 매칭

정규식 패턴을 만들었다면, 해당 패턴과 검사하려는 문자열을 비교하여 매칭을 검사할 수 있습니다.

Java에서는 Matcher 클래스를 이용하여 정규식 패턴과 대상 문자열을 비교합니다.

Matcher 클래스는 다음과 같이 생성됩니다.

 

import java.util.regex.Matcher;

// 대상 문자열
String targetString = "검사 대상 문자열";

// Matcher 객체 생성
Matcher matcher = pattern.matcher(targetString);

 

위 코드에서 "검사 대상 문자열" 부분을 실제 검사할 문자열로 바꾸어주면 됩니다.

 

정규식 매칭 결과 확인

Matcher 클래스를 이용하여 매칭을 검사하면, 해당 정규식 패턴과 대상 문자열이 매칭되었는지 여부를 확인할 수 있습니다.

이를 위해서는 Matcher 클래스에서 제공하는 다양한 메서드를 이용할 수 있습니다.

가장 일반적인 메서드는 find() 메서드입니다.

find() 메서드는 정규식 패턴과 대상 문자열 중에서 매칭되는 부분이 있는지를 검사하고, 매칭되는 부분이 있으면 true를 반환합니다.

 

// 매칭 결과 확인
if (matcher.find()) {
    System.out.println("매칭되는 부분이 있습니다.");
} else {
    System.out.println("매칭되는 부분이 없습니다.");
}

 

정규식 매칭 결과 추출

정규식 패턴과 대상 문자열이 매칭되었다면, Matcher 클래스를 이용하여 매칭된 부분을 추출할 수 있습니다.

Matcher 클래스에서 제공하는 다양한 메서드를 이용하여 매칭된 부분을 추출할 수 있으며, 가장 일반적인 메서드는 group() 메서드입니다.

group() 메서드는 매칭된 부분을 문자열로 반환합니다.

 

// 매칭 결과 추출
String matchedString = matcher.group();
System.out.println("매칭된 문자열: " + matchedString);

 

예시

다음은 이메일 주소를 검증하는 예시 코드입니다. 

정규식 패턴을 이용하여 이메일 주소가 올바른 형식인지 확인하고, 올바른 경우 "올바른 이메일 주소입니다"를 출력하고, 그렇지 않은 경우 "잘못된 이메일 주소입니다"를 출력합니다.

 

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator {
    private static final String EMAIL_REGEX =
        "^[a-zA-Z0-9_+&*-]+(?:\\." +
        "[a-zA-Z0-9_+&*-]+)*@" +
        "(?:[a-zA-Z0-9-]+\\.)+[a-z" +
        "A-Z]{2,7}$";

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(EMAIL_REGEX);

        String email1 = "abc@gmail.com";
        String email2 = "abc@gmail";
        String email3 = "abc@.com";
        String email4 = "abcgmail.com";

        System.out.println("Email1: " + validateEmail(email1, pattern));
        System.out.println("Email2: " + validateEmail(email2, pattern));
        System.out.println("Email3: " + validateEmail(email3, pattern));
        System.out.println("Email4: " + validateEmail(email4, pattern));
    }

    public static String validateEmail(String email, Pattern pattern) {
        Matcher matcher = pattern.matcher(email);

        if (matcher.matches()) {
            return "올바른 이메일 주소입니다.";
        } else {
            return "잘못된 이메일 주소입니다.";
        }
    }
}

위 코드에서 정규식 패턴으로 사용된 EMAIL_REGEX는 이메일 주소의 올바른 형식을 정의하는 패턴입니다.

validateEmail() 메서드에서는 Matcher 클래스를 이용하여 이메일 주소를 검증하고, 올바른 형식인 경우 "올바른 이메일 주

소입니다"를, 그렇지 않은 경우 "잘못된 이메일 주소입니다"를 반환합니다.

 

결론

정규식 패턴을 작성하는 것은 쉽지 않은 작업이므로, 실제로 사용할 때는 여러 예제를 참고하거나, 온라인 도구를 이용하여 패턴을 만드는 것이 좋습니다.

또한, 정규식 패턴을 만들 때는 매칭하려는 문자열의 패턴을 잘 파악하고, 정규식 문법에 익숙해지는 것이 중요합니다.

이번 글에서는 Java에서 정규식 패턴을 만드는 방법과 매칭하는 방법, 그리고 매칭 결과를 추출하는 방법에 대해 알아보았습니다.

다음 글에서는 좀 더 복잡한 정규식 패턴을 다루고, 그것을 실제로 활용하는 방법에 대해 알아보겠습니다.

정규식을 이용하여 문자열을 다룰 수 있는 능력을 향상시키면, 코딩 능력을 높일 수 있을 것입니다.

728x90
반응형
250x250
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band