정규표현식

김수민·2023년 4월 1일
0

백엔드 부트캠프

목록 보기
40/52

정규 표현식이란?

정규표현식: 문자열에서 특정한 규칙에 따른 문자열 집합을 표현하기 위해 사용되는 형식 언어
특정한 규칙을 갖는 문자열로 이루어진 표현식이며, 정규표현식에서의 특수 문자는 각각의 고유한 규칙을 갖고 있음. 이러한 규칙들을 조합하여 원하는 패턴을 만들고, 특정 문자열에서 해당 패턴과 대응하는 문자를 찾을 수 있음

정규 표현식 예시

이메일 유효성 검사

String email = "kimcoding@codestates.com";
String regExp = "\\w+@\\w+\\.\\w+(\\.\\w+)?";

//Patten.matches 메소드를 사용하여, 결과를 boolean타입으로 확인할 수 있습니다.

if(Pattern.matches(regExp, email)) System.out.println("올바른 이메일 주소입니다.");
else System.out.println("정확한 이메일 주소를 입력해 주세요.");

휴대전화 번호 유효성 검사

String regExp = "^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$";

정규표현식을 활요한 알고리즘 예제

문자열 str 이 주어질 때, str의 길이가 5 또는 7이면서 숫자(0~9)로만 구성되어 있는지를 확인해 주는 함수를 작성하세요. 결과는 Boolean으로 리턴됩니다. 예를 들어 str가 c2021이면 false, 20212이면 true를 리턴합니다.

// 정규표현식 사용
public boolean solution(String str) {
	String regExp = "\\d{5}$|\\d{7}$"
	return Pattern.matches(regExp, str)
}

-----------------------------------------------------------------------------
// 정규표현식 미사용
public boolean solution(String str) {
	if(str.length() == 5 || str.length() == 7) {
		for(int i = 0; i < str.length(); i++) {
			if(!Character.isDigit(str.charAt(i))) return false;
		}
		return true;
	}
	return false;
}

0개의 댓글