"/패턴/[플래그(Opt.)]"
기본 메타 문자
메타 문자 | 의미 |
---|---|
^x | x로 시작 |
x$ | x로 끝 |
.x | x앞에 하나의 문자가 있다. |
x+ | x가 1번 이상 반복 |
x? | x가 있거나 없다. |
x* | x가 0번 이상 반복 |
. | 아무 문자 하나를 의미 |
괄호의 활용
regexp | 의미 |
---|---|
(xy) | 괄호 안의 내용을 그룹화 |
x{n} | n번 반복됨 |
x{n,} | n번 이상 반복됨 |
x{n, m} | n번 이상, m번 이하 반복됨 |
[xy] | x 또는 y |
[a-z] | 알파벳 소문자 (a~z) |
[0-9] | 숫자 |
[가-힣] | 한글 |
[^x] | x가 아닌 것 |
[^0-9] | 숫자가 아닌 것 |
\...
축약 문자
regexp | 의미 |
---|---|
\^ ,\. ... | \ 뒤에 나오는 문자를 문자로 처리 |
\b | 단어의 경계를 찾는다. |
\B | 단어의 경계가 아닌 것을 찾는다. |
\d | 숫자를 찾는다. |
\D | 숫자가 아닌 것을 찾는다. |
\s | 공백 문자를 찾는다. |
\S | 공백 문자가 아닌 것을 찾는다. |
\w | [a-zA-Z0-9_] |
\W | [^a-zA-Z0-9_] |
유용한 정규식 예
^[가-힣]{2,5}$
^01(0|1|2|6|9)[-\s]?\d{3,4}[-\s]?\d{4}$
^[\w\.-]{1,64}@[\w\.-]{1,252}\.\w{2,4}$
Flag | 기능 |
---|---|
g | 문자열 내 모든 패턴을 찾음 |
i | 대소문자를 구분하지 않음 |
m | 문자열의 모든 줄에서 찾음 |
메소드 | 설명 |
---|---|
public | static Pattern compile(String regex) Pattern 객체를 생성 |
public | Matcher matcher(CharSequence input) 입력을 분석하는 Matcher 객체 생성 |
public | static boolean matches(String regex, CharSequence input) 입력이 regexp에 해당하는지 판단 |
메소드 | 설명 |
---|---|
find() | 정규표현식에 부합되는 내용이 문자열에 포함되어 있는지 반환. 이전 검색 위치부터 이어서 검색. |
start() | 패턴에 부합되는 요소의 시작 인덱스 반환 |
end() | 패턴에 부합되는 요소가 끝나는 위치 + 1을 반환 |
matches() | 문자열 전체가 정규표현식에 일치하는지 반환 |
lookingAt() | 비교하려는 문자열이 정규표현식으로 시작하는지 반환. 0번 인덱스부터 검색. |
replaceFirst() | 일치하는 첫 패턴을 문자열로 대체 |
replaceAll() | 일치하는 모든 패턴을 문자열로 대체 |
reset() | Matcher의 정보를 리셋하여 0번 인덱스부터 다시 검색 |