모든 표현 정리
표현식 | 설명 |
---|---|
^ | 시작 부분 |
& | 끝 부분 |
\ | 뒤에오는 표현식 문자로 취급 |
. | 모든 문자와 매치 |
[] | 박스안에 있는 문자 매치 |
[a-z] | 문자 순서 a~z까지 매치 |
[^a~z]: | a~z까지 제외 매치 |
(on|bash|cell) | 3개의 단어중에 있어야 매치 |
a*c | a가 0개 이상이고 c포함한 문자 매치 |
a+c | a가 1개 이상이고 c포함한 문자 매치 |
a?c | a가 1개 또는 0개이고 c포함한 문자 매치 |
{4} | 4번 반복 매치 |
{1,4} | 최소1번 반복 최대 4번반복 매치 |
{3,} | 3번이상 반복 매치 |
\w | 모든 단어와 매치("_"," " 포함) |
\W | \w가 아닌것 |
\d | 숫자 |
\D | 숫자가 아닌것 |
\s | space 공백 |
\S | 공백이 아닌 것 |
^ : 문자의 시작부분을 매칭
정규 표현식 : ^who
first match : Who is Who
all matches : who is who
&: 문자의 끝부분을 매칭
정규 표현식 : woh&
first match : who is who
all matches : who is who
\ : escape(뒤에오는 값은 문자로 표현)
step : 1
정규 표현식: ^& => 시작과 끝부분 매칭 말이안됨
first match : &12&-\&25&
All matches : &12&-\&25&
step :2
정규 표현식: \& => 문자'&'를 찾는다.
first match : &12&-\&25&
all matches : &12&-\&25&
step : 3
정규 표현식: ^\& => 첫번쨰 문자'&'만 매치
first match : &12&-\&12&
all matches :&12&-\&12&
step : 4
정규 표현식 : \&& => 맨뒤 문자 '&'만 매치
first match : &12&-\&12&
all matches : &12&-\&12&
. : 모든 문자열 매치
step : 1
정규 표현식 : .
first match : Regular expressions are powerful!!!
all matches :Regular expressions are powerful!!!
step : 2
정규 표현식 : ......(6개)
first match : Regular expressions are powerful!!!
all matches : Regular expressions are powerful!!! ==> 띄어쓰기도 포함 6개씩 묵어서 매치
step : 3
정규 표현식 : . => '.' 매치
first match : O.K.
all matches : O.K.
step: 4
정규 표현식 : ... => .(any). 형식의 문자를 찾는다.
first match : O.K.
all matches : O.K.
[] :박스안에 문자목록을 넣고 발견되면 해당 문자를 찾는다. 순서는 중요하지않음
step : 1
정규 표현식 : [oyu]
first match : How do you do?
all matches : How do you do? => o,y,u 다 찾아서 매치
step : 2
정규 표현식 : [dH]. => 문자'd','H' 뒤에 (any)문자 까지 매치
first match : How do you do?
all matches : How do you do?
step : 3
정규 표현식 : [owy][yow] => 첫번쨰목록중,두번쨰목록이 맞는 2글짜 매치
first match : How do you do?
all matches : How do you do?
[a-z] : a에서 z까지
박스안에서 '-'를 사용하여 문자범위를 지정할 수 있다.
순서 원칙
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789
step : 1
정규 표현식 : [C-K] : C~K까지
first match : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789
all matches : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
step : 2
정규 표현식 : [CDEFGHIJK] => step 1과 같다
first match : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789
all matches : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
step : 3
정규 표현식 : [C-Ka-d2-6] => C~K,a~d,2~6 포함
first match : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
all matches : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
[^A~Z]: 박스안에 ^ 넣으면 박스안의 값 제외를 매치함
step : 1
정규 표현식 : [^CDghi45]
first match : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
all matches : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
step : 2
정규 표현식 : [^W-Z]
first match : ABCDEFGHIJKLMNOPQRSTUVWXYZ
all matches : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
( on | use | rida ) : 3개의 묶음중 포함된 문자 매치
step : 1
정규 표현식 : (on|ues|rida)
first match : Monday Tuesday Friday
all matches : Monday Tuesday Friday
step : 2
정규 표현식 : (Mon|Tues|Fri)day => 묶음 + 뒤의 문자까지 매치
first match : Monday Tuesday Friday
all matches : Monday Tuesday Friday
a*b, a+b,a?b : 순서대로 'a'가 0개이상, 1개이상, 0또는1개 인것과 뒤의 'b'를 포함한 것을 매치한다.
stpe : 1
정규 표현식 : a*b => a가 0개이상, b포함인 것을 매치
first match : aabc abc bc
all matches : aabc abc bc
step : 2
정규 표현식 : a+b => a가 한개이상이고 b포함인 것 매치
first match : aabc abc bc
all matches : aabc abc bc
step : 3
정규표현식 : a?b => a가 1개또는 0개 그리고 b포함 매치
first match : aab abc bc
all matches : aabc ab bc
step : 4
정규 표현식 : .* => *가 0개이상이므로 전부 매치함
first match : -@- -- "" -- * -@-
all matches : -@- -- "" -- * -@-
step : 5
정규 표현식 : -A*- => A가 0개여도 매치가 된다.
first match : -@- -- "" -- * -@-
all matches : -@- -- "" -- * -@-
step : 6
정규 표현식 : [-@]* => []안쪽의 조건 해당되는 연속되는 문자 매치
first match : -@- -- "" -- * -@-
all matches : -@- -- "" -- * -@-
step : 7
정규 표현식 : \*+ => * 를 1개이상인 것 매치
first match : -@@@- * - - "" -- -@@@-
all matches : -@@@- * ** - - "*" -- * ** -@@@-
-stpe : 8
정규 표현식 : -@+- => - 사이의 @이가 1개이상이면 매치
first match : -@@@- * - - "*" -- * ** -@@@-
all matches : -@@@- * - - "*" -- * ** -@@@-
{4},{1,3} : 순서대로 4번반복, 최소1번 최대 3번 반복
step : 1
정규 표현식 : .{5} => 아무문자나 5개 매치
first match : One ring to bring them all and in the darkness bind them
all matches : One ring to bring them all and in the darkness bind them
step : 2
정규 표현식 : [els]{1,3} []안의 값중 1~3개 매치
first match : One ring to bring them all and in the darkness bind them
all matches : One ring to bring them all and in the darkness bind them
step : 3
정규 표현식 : [a-z]{3,} => ,를 찍으면 3개 이상 다 반복
first match : One ring to bring them all and in the darkness bind them
all matches : One ring to bring them all and in the darkness bind them
step : 4
정규 표현식 : AB{0,}A
first match : AA ABA ABBA ABBBA
all matches : AA ABA ABBA ABBBA
\w : 모든 단어 문자(영문자와 "_", " ")와 매치
활용 예시
const text = "정규표현식 질문 문의 : http://jjjjjjj.com http://google.com
010-1111-2222 02-333-7777 juno97@aaa.com";
// 전화번호 찾기
const phone =text.match(/\d{2,3}-\d{3,4}-\d{4}/g);
console.log(phone)
// ['010-1111-2222', '02-333-7777']
// email 찾기
const email = text.match(/[\w\-\.]+\@[\w\-\.]+/g); //
console.log(email)
// [ 'juno97@aaa.com' ]
추가적으로 맨뒤의 'g'는 정규표힌식 플래그이다.
표현식 | 설명 |
---|---|
g | Global: 모든 문자 검색(안 쓰면 매칭되는 첫 문자만 검색) |
i | ignore Case: 대소문자 구분안함 (무지편함!!) |
m | Multi line: 여러 행의 문자열에 대해 검색 |
동시에 여러개 사용가능 (ex: gi, gm)