정규식에 대해선 아직도 잘 모르겠고 복잡하다. 당연히 써본적도 별로 없다.
어쩌면 이번에 실제로 사용해보는건 처음이였다.
하지만 문자열을 구분하기 위해서 정규식을 사용해보면 좋을거같아서 사용법을 가볍게 찾아보고 적용시켜보기로 했다.
우선 기본적인 사용 방법이다.
정규식(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 |
---|