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