카테고리 없음

Javascript 정규식 (Regex)

hsoooo 2019. 3. 6. 00:11

1. 기본 사용법

String의 함수

: String.function(regex)

함수명 

기능 

 match(regex)

 매치된 문자열 반환 (g option 배열 반환)

 replace(regex, replace)

 매치된 부분 변경

 search(regex)

 매치된 문자열의 시작 index 반환 

 split(regex[, limit])

 regex를 기분으로 String을 쪼개서 반환 


Regex의 함수

: regex.function(String)

함수명 

기능 

exec(String)

 일치되는 첫반째 문자열 반환

test(String)

 매치 여부를 boolean 값으로 반환

* exec에서는 g 플래그가 먹지 않는다.

** test에서는 g 플래그가 무의미 하다

2. 플래그

i: ignore case => 대소문자 무시

g: global => 모든 문자열을 배열로 반환

m: multi line => 줄바꿈 무시


3. OR 조건 ( | )

/c|bc|a|abc/.exec("abc") => a

반환 순서

- 일치된 문자의 index 값

- index 값이 같을 경우 정규식의 순서


4. Wild 카드, 길이

문자를 대신 할 수 있는 특수 문자 및 길이 지정

패턴 

설명 

예 

결과값

 test 결과

 한글자 대체

'sports'.match(/s./) 

 sp

 true

 한글자 이상 

'sssports'.match(/s+/)

'sports'.match(/s.+/)

'port'.match(/s+/)

 ss

sports

null

 true

 true

false 

 *

 없거나 하나 이상 

'sssports'.match(/s*/)

'sssports'.match(/s.*/)

'port'.match(/s*/)

sss

sssports

""

 true

 true

 true 

 ?

 앞의 글자가 없거나 하나만 

'sport'.match(/spa?/) 

'sport'.match(/spo?/)

sp

spo 

  true

 true

 {숫자}

 수에 매치

' aaaa'.match(/a{2}/)

'asas'.match(/as{2}/)

aa 

asas

true

true 

 {숫자,}

 이상

'aaaa'.match(/a{2,}/) 

 aaaa

true 

 {숫자1, 숫자2}

 범위

'aaaa'.match(/a{2,3}/) 

 aaa

 true

 +?

한번 매치 (최소)

 'aaaa'.match(/a+?/)

 a

true 

 *?

최소 매치 (최소)

'aaaa'.match(/aa*?/) 

a

true 

 {숫자, 숫자}?

 범위 무시 (최소)

'aaaa'.match(/a{2,3}?/) 

aa 

true 

* 수량 뒤쪽에 ? 붙이면 매치되는 값들 중 길이가 최소인 것을 선택


5. 위치 지정

startWith: ^

* /^a/ => a로시잓하는

endsWith: $

* /a$/ => a로 끝나는


6. 문자 매치

 패턴

설명 

예 

결과값 

 

[] 

글자 단위 인식

[ab] = /a|b/ 

'abc'.match(/[ab]/)

'bac'.match(/[ab]/)

'abc'.match(/[ab]/g)

'abc'.match(/[ab]/g)

a

[a, b]

[a, b]

 

 [패턴문자]

+ . * ? 등 패턴 문자를 문자로 인식 

'+aa'. match(/[+]/)

 

[-]

범위 1-9 

'123456789'.match(/[2-7]/g) 

["2","3","4","5","6","7"] 

 

 [^]

아닌 문자 

'asdf'.match(/[^s]/g) 

["a","d","g"] 

 

* - 사용시 2- => 2와 -


7.

* 이스케이프 시퀀스, 유니코드 사용 가능

\t 탭

\n 개행 

\b backspace 또는 63개 문자

\B 63개 이외 문자

\s 보이지 않는 문자