구성
/ RegExr / i
| | |
시작 종료 플레그
플레그
Flag | Meaning | Description |
---|---|---|
g | global | 모든 케이스를 검색. |
i | case-insensitive | 대소문자 구분 무시. |
m | multiline | 줄 단위가 아니라 전체 문자의 시작과 끝만 본다. |
s | dotall | .(모든 문자 정규식)이 개행 문자 \n도 포함하도록 |
u | unicode | 유니코드 전체를 지원 |
y | sticky | 문자 내 특정 위치에서 검색을 진행하는 ‘sticky’ 모드를 활성화 |
예시
g
플레그 적용 X
san san seo
/san/
san
g
플레그 적용 O
san san seo
정규 표현식 : /san/g
매칭 : san san
s
플레그 적용 X
hello
dannysir
/hello.*dannysir/g
s
플레그 적용 O
hello
dannysir
/hello.*world/gs
패턴 | 의미 |
---|---|
a-zA-Z | 영어알파벳(-으로 범위 지정) |
ㄱ-ㅎ가-힣 | 한글 문자(-으로 범위 지정) |
0-9 | 숫자(-으로 범위 지정) |
. | 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두)단, 줄바꿈 X |
\d | 숫자 |
\D | 숫자가 아닌 것 |
\w | 밑줄 문자를 포함한 영숫자 문자에 대응[A-Za-z0-9_] 와 동일 |
\W | \w 가 아닌 것 |
\s | space 공백 |
\S | space 공백이 아닌 것 |
\특수기호 | 특수기호 * \^ \& ! \? ...등 |
\b | 63개 문자(영문 대소문자 52개 + 숫자 10개 + _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary) |
\B | 63개 문자에 일치하는 경계 |
\x | 16진수 문자에 일치/\x61/는 a에 일치 |
\0 | 8진수 문자에 일치/\141/은 a에 일치 |
\u | 유니코드(Unicode) 문자에 일치/\u0061/는 a에 일치 |
\c | 제어(Control) 문자에 일치 |
\f | 폼 피드(FF, U+000C) 문자에 일치 |
\n | 줄 바꿈(LF, U+000A) 문자에 일치 |
\r | 캐리지 리턴(CR, U+000D) 문자에 일치 |
\t | 탭 (U+0009) 문자에 일치 |
기호 | 의미 |
---|---|
() | 그룹화 및 캡쳐 |
(?: 패턴) | 그룹화 (캡쳐 X) |
(?=) | 앞쪽 일치(Lookahead), /ab(?=c)/ |
(?!) | 부정 앞쪽 일치(Negative Lookahead), /ab(?!c)/ |
(?<=) | 뒤쪽 일치(Lookbehind), /(?<=ab)c/ |
(?<!) | 부정 뒤쪽 일치(Negative Lookbehind), /(?<!ab)c/ |
참고 : 추상 구문트리 - 위키 백과
이제 웹페이지가 랜더링 되는 순서를 살펴 보면 다음과 같다.
참고 블로그
https://talkingaboutme.tistory.com/entry/Compiler-Parser-동작
https://jake-seo-dev.tistory.com/465
https://velog.io/@jun_/구문-분석과-DOM-Parser
이미지 출처
https://velog.io/@moonshadow/CSSOM