정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. 정규표현식 나올 때마다 구글링하지말고 내 거 보기 위해 정리해 본다.
Regex | 설명 |
---|---|
. | 어떤 문자 1개를 의미 |
^regex | ^다음 regex로 line을 시작하는지 |
regex$ | $ 앞의 regex가 line의 마지막으로 끝나는지 |
[abc] | a,b,c 중 문자 1개 |
[abc][vz] | a,b,c 중에 문자 1개와 v,z 중에 문자 1개의 조합 |
[^abc] | a,b,c를 제외한 문자 1개 |
[a-d1-7] | a-d,1-7 사이의 문자 1개 |
XlZ | X 또는 Z |
\d | 0-9 사이의 숫자, [0-9]와 동일 |
\D | 숫자가 아닌 어떤 문자, [^0-9]와 동일 |
\s | whitespace 1개, [\t\n\x0b\r\f]와 동일 |
\S | whitespace를 제외한 문자 |
\w | Alphanumeric(alphabet,숫자) 문자, [a-zA-Z_0-9]와 동일 |
\W | Alpanumeric을 제외한 문자 |
\s+ | whitespace를 제외한 여러 문자 |
\b | 단어의 공백을 찾는다 |
* | 0회 이상 반복 |
+ | 1회 이상 반복 |
? | 0 or 1회만 |
{X} | X회 이상 반복 |
{X,Y} | X-Y 사이의 수만큼 반복 |
*? | 가장 적게 일치하는 패턴을 찾음 |
// 이메일
String emailRegExp = "/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i";
// 비밀번호
String pwRegExp = "/^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/";
// 아이디
String idRegExp = "/^(?=.*[a-zA-z])(?=.*[0-9])(?=.*[$`~!@$!%*#^?&\\(\\)\-_=+]).{8,16}$/";