본문 바로가기
Java

[Java] 정규식 표현(regular expression - regex) 사용하기

by 탷 2022. 3. 28.

정규식에 대해선 아직도 잘 모르겠고 복잡하다. 당연히 써본적도 별로 없다.

어쩌면 이번에 실제로 사용해보는건 처음이였다.

하지만 문자열을 구분하기 위해서 정규식을 사용해보면 좋을거같아서 사용법을 가볍게 찾아보고 적용시켜보기로 했다.

 

우선 기본적인 사용 방법이다.

정규식(regular expression - regex) 설명
^ 문자열의 시작
$ 문자열의 끝
\d 숫자[0-9]
\D 숫자 이외의 문자
\s 공백 문자
\S 공백 문자가 아닌 문자
\w 알파벳 or 숫자
\W 알파벳과 숫자가 아닌 문자

 

이 외에 문자가 한번 나오는지 혹은 여러번 나오는지 확인하는 방법도 있다.

 

정규식(regular expression - regex) 설명
* 해당 문자가 0번 이상 발생 
+ 해당 문자가 1번 이상 발생
? 해당 문자가 0번이나 1번 발생
{} 해당 문자가 몇번 발생할지 표기 ex)d{4,5} - 숫자가 4~5번
[] 어떤 문자가 발생할지 표기 ex)[0-9a-zA-Z] - 숫자와 알바벳
^ not 표현

 

이를 이용해서 사용할 수 있는 표현들은 아래와 같이 있다.

정규식(regular expression - regex) 설명
^[0-9]*$ 숫자
^[a-zA-Z]*$ 알파벳
^[가-힣]*$ 한글
\\w+@\\w+\\.\\w+(\\.\\w+)? 이메일
^\d{2,3}-\d{3,4}-\d{4}$ 전화번호
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ 핸드폰번호
^\d{3}-\d{2}$ 우편번호

 

위 방법들을 가지고 내가 구분해내고 싶었던 문자열은

256m 384m 1024m 1g 2g 10g

와 같이 앞에는 숫자만 그리고 마지막 문자만 'm 또는 g'가 오는 문자열이다.

 

String input = "123123m";
    	
boolean inputMatch = input.matches("^[0-9]+(g|m)$");
    	
System.out.println("inputMatch: " + inputMatch);

 

이 방법을 이용해서 원하는 문자열만 입력을 받고 이외에는 예외처리를 할 수 있었다.

'Java' 카테고리의 다른 글

[Java] 전체 물리 메모리와 남은 메모리 확인  (0) 2022.03.23