정규식이란?
1. 정의
- 정규식(Regular Expression)은 특정한 규칙을 가지는 문자열 집합을 표현하는데 사용하는 형식 언어
- 흔히 regex라고 불림
2. 문법
^ : not의 의미,
문자의 시작을 의미
- ^[a] : a로 시작하는 문자
$ : 문자의 끝을 의미
- [a]$ : a로 끝나는 문자
[] : 한 개의 문자
- [abc] : a, b, c 중 한 개의 문자
- [^abc] : a, b, c 를 제외하고 한 문자
- [a-z] : a부터 z까지 중 하나
- [a-zA-Z] : 영어 단어 중 하나
{} : 횟수 또는 범위를 나타냄
- {3} : 정확히 3회
- {3, } : 3회 이상
- {3, 5} : 3회 이상 5회 이하
() : 그룹핑
\d : 한 개의 숫자
- [0-9]와 동일
\s : 공백
\w : 한 개의 알파벳 또는 한 개의 숫자 또는 언더바(_) [a-zA-Z0-9_]와 동일
- \W : \w에서 언더바 제외
| : or를 의미
+ : 앞 문자가 하나 이상
- {1, }과 같음
- ab+ : a 다음에 b가 1개 이상
* : 앞 문자가 없을 수도 무한정 많을 수도 있음
- : {0, }과 같음
- ab* : a 다음에 b가 0개 이상
? : 앞 문자가 존재할수도, 존재하지 않을 수도 있음
- ab? : a or ab를 의미
3. Pattern 클래스
- 정규 표현식을 사용하여 문자열을 검증
- static 메소드인
compile()
로 pattern을 생성하여 matches()
메서드로 검증
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
m.matches();
4. Matcher 클래스
- 패턴을 해석하고 입력 문자열에 대해 일치 작업을 수 행
- Pattern 객체의
matcher()
메소드를 호출해서 얻음
matches()
메소드를 활용하여 검증
참고