정규표현식
정규식은 텍스트에서 원하는 특정한 패턴을 찾을 때 사용된다.
활용예시) 전화번호 형태, 웹사이트 형태, 이메일, 패스워드 유효성 검사 등
/regex/i
슬래시 안에 정규표현식이 오고 뒤에는 옵션이 붙는다.
- regex : 정규표현식
- i : flag(옵션)
flag옵션
- g global : 매칭되는 다수의 결과값을 기억할 수 있는 것
- m multiline : 문장을 전체로 보지 않음.
정규표현식 문법
Groups and ranges
Chracter뜻
| | 또는 |
() | 그룹 |
[] | 문자셋, 괄호안의 어떤 문자든/하나라도 만족하는 문자열 찾음 |
[^] | 부정 문자셋, 괄호안의 어떤 문가 아닐때/Not |
(?:) | 찾지만 기억하지는 않음/그룹지정x |
Quantifiers 수량
Chracter뜻
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
Boundary-type
Chracter뜻
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
Character classes
Chracter뜻
\ | 특수 문자가 아닌 문자 |
. | 어떤 글자 (줄바꿈 문자 제외 모든 문자) |
\d | digit 숫자 |
\D | digit 숫자 아님 |
\w | word 문자 |
\W | word 문자 아님 |
\s | space 공백 |
\S | space 공백 아님 |
사용 예시
- /[a-f]/ : a부터 f
- /gra?y/ : a가 있거나 없거나
- /\bYa/ : 단어 앞에서 쓰이는 Ya만 검색
- /Ya\b/ : 단어 뒤에서 쓰이는 Ya만 검색
- /Ya\B/ : 대문자는 반대로 적용(단어 뒤에서 쓰이지 않는 Ya만 검색)
- 특수문자(., ? 등)을 찾을 때는 \앞에 붙여줘야 함