문자열에서 특정 문자 조합을 찾기 위한 패턴(일정한 규칙을 가진 문자열 집합 포현)
패턴과 플래그로 구성
- 패턴 : 문자열의 일정한 규칙 표현
- 플래그 : 정규표현식의 검색 방식 설정(옵션)
원래 그 문자가 아닌 특별한 용도로 사용하는 문자
정규표현식에서 사용하는 문자를 Meta 문자라고 표현한다
표 보기좋게 정리 할 예정..🫠
메타문자 | 설명 | 예시 |
---|---|---|
^ | 검색되는 문장의 시작 부분에서 찾음 찾고자 하는 문자의 앞에 붙임 중괄호 안에 있을 때는 부정을 뜻 함 | ^hi -> hi로 시작하는 문자열 검색 [^hi] hi를 제외한 문자열 검색 |
$ | 검색되는 문장의 끝부분에서 찾음 찾고자 하는 문자의 뒤에 붙임 | hi$ -> hi로 끝나는 문자열 검색 |
. | 임의의 하나의 문자('\n'을 제외한 모든 단일 문자 검색) | a.c -> abc, a1c, a?c, a c |
+ | 반복을 표현하며, 앞의 문자를 1개 이상 반복 | ab+ -> ab, abb, abbbbbbb |
* | 반복을 표현하며, 앞의 문자를 0개 이상 반복 | ab* -> a, ab, abbbbb |
? | 존재 여부를 표현하며 바로 앞의 문자가 있을 수도 없을 수도 있음 | a?b -> ab, b |
or를 표현 | ||
() | 그룹을 표현 | (a |
(?:) | 그룹들의 집합에 대한 예외 표현. 그룹 집합으로 관리되지 않는다 | gr(?:e |
[] | 문자셋, 괄호안의 어떤 문자든 | [ab]c -> ac, bc |
[^] | 부정 문자셋, 괄호안의 어떤 문자가 아닐 때 | [^ab] -> a나 b가 아닌 모든 문자 의미 [^a-zA-Z0-9] -> 대소문자 a~z, 숫자 0~9를 제외 한 문자 찾는다 |
[a-z] | 범위를 표현함 | 소문자 a~z 사이의 문자 의미 |
[A-Z] | 범위를 표현함 | 대문자 A~Z 사이의 문자 의미 |
[0-9] | 범위를 표현함 | 숫자 0~9 사이의 의미 |
[가-힣] | 범위를 표현함 | 한글 가 ~ 힣 사이의 문자 의미 |
{} | 수량자 식의 시작 및 끝 부분 표시 | a{n} -> a가 n번 반복되는 문자 찾음 |
{min,} | 최소 min번 반복되는 문자 찾음 | a{3,} -> a가 최소 3번 이상 반복되는 문자 찾음 |
{min,max} | 최소 min번, 최대 max번 문자 찾음 | 3{1,3} -> 3이 최소 1번이상, 최대 3번 이하 반복되는 문자 찾음 |
\b | word boundary 표현, 단어 경계 표현. 단어의 첫 부분과 끝 부분 경계 지정 문자(대소문자,숫자,_)가 아닌 나머지 문자에 일치하는 경계 | \bYa -> Ya가 단어 앞에서 쓰이는거 찾음 YaYaYa Ya\b -> Ya가 뒤에서 쓰이는거 찾음 YaYaYa |
\B | 단어 경계가 아닌 부분 표현 | |
\ | 특수문자를 메타문자가 아닌 그냥 문자로 찾을 때 | {}[] -> {}[] |
\d | digit 의미, 숫자 전부 찾음 | \d{2} -> 13,55,29,01 숫자가 2개인거 전부 찾음 |
\D | digit 숫자 아님. 숫자 아닌거 전부 찾음 | \D{2} -> ab,ji,d! |
\w | 모든 문자열 검색, a-z, A-Z, 0-9, _ | \w -> a, b, c, 3, _, 0 |
\W | 문자열을 제외한 모든 것 | \W -> -, {, !, ^ |
\s | space의 약자로 공백 | |
\S | 공백을 제외한 문자열 |
정규표현식의 옵션으로 정규식으로 검색하려는 문자 패턴에 추가적인 옵션을 넣어 원하는 문자 검색 결과를 반환하도록 한다. Flag를 사용하지 않으면 문자열에 대해 검색을 한 번만 처리하고 종료한다.
플래그 | 설명 |
---|---|
g | 모든 문자 일치(global) |
i | 영어 대소문자를 구분하지 않고 일치(ignore case) |
m | 여러 줄 일치(multi line) |
Hi there, Nice to meet you. And Hello there and hi.
I love grey(gray) color not a gry, graay and graaay.
Ya ya YaYaYa Ya
abcdefghijklmnopqrstuvwxyz
ABSCEFGHIJKLMNOPQRSTUVWZYZ
1234567899999990
.[]{}()\^$|?*+
010-898-0893
010-405-3412
02-878-8888_
dream.coder.ellie@gmail.com
hello@daum.net
hello@daum.co.kr
https://www.youtu.be/-ZClicWm0zM
https://youtu.be/-ZClicWm0zM
youtu.be/-ZClicWm0zM
(더 정리 할 예정)