공부하는 블로그

JavaScript 정규표현식 본문

Develop/JavaScript

JavaScript 정규표현식

모아&모지리 2018. 2. 20. 10:15

1     정규표현식

정규표현식은 문자열의 치환 및 색인을 위한 패턴화된 표현식을 말한다.

1.1    생성

1)    var re = /정규식/;

2)    var re = new RegExp(“정규식”);

1.2    옵션

1)    g : 전체 색인

2)    i : 대소문자 구분 안함

3)    s : .의 의미를 확장하여, 공백, 엔터도 하나의 문자로 취급함

4)    m : 멀티라인 옵션으로 ^, $를 확장

5)    x : 정규식 패턴에 공백을 무시함

1.3    패턴

1)    정규식은 대소문자를 구분한다.

문자열

Hello World

정규식

Hello

결과

Hello World

2)    문자열에는 공백문자(스페이스, 엔터, )도 포함한다

문자열

Hello World

정규식

Hello World

결과

Hello World

3)    ^ 는 문자열의 시작, $는 한 줄의 끝을 의미한다

문자열

who i am

정규식

^who

결과

who i am

정규식

am$

결과

who i am

4)    정규식에 사용되는 특수문자는 \(역슬레시)를 붙혀서 사용한다

문자열

12, 000$

정규식

\$

결과

12, 000$

5)    .은 공백 및 한자리 문자를 의미한다 (, 엔터는 제외)

문자열

Hello World

정규식

.

결과

Hello World

6)    [] 는 찾을 문자들의 리스트를 나타낸다

문자열

Hello World

정규식

[eWr]

결과

Hello World

7)    [ - ] 문자의 범위를 지정 때 사용한다

문자열

hello world

정규식

[d-h]  (다음과 동일 [defgh] )

결과

hello World

8)    문자범위 앞에 ^기호는 해당 범위의 문자를 제외한 나머지를 의미한다

문자열

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

정규식

[^CDghi45]

결과

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

9)    여러 문자열 중 하나와 일치하는 것을 찾으려면 ()를 사용하고 문자열 사이에 | 기호를 사용하여 구분한다

문자열

Monday Tuesday Friday

정규식

(on|ues|rida)

결과

Monday Tuesday Friday

10)  문자가 몇 번 반복되는지 나타낼 때는 * (0번이상), + (1번이상), ? (0 or 1)을 사용한다

문자열

aabb abc bc

정규식

a*b

결과

aabb abc bc

정규식

a+b

결과

aabb abc bc

정규식

a?b

결과

aabb abc bc

11)  {N} N번 반복, {N, M} N~M 반복, {N, } N번 이상의 반복을 의미한다

문자열

One ring to bring them all and in the darkness bind them

정규식

.[s]{2}

결과

One ring to bring them all and in the darkness bind them

정규식

[a-z]{3, }

결과

One ring to bring them all and in the darkness bind them

(, * {0, } , + {1, } , ? {0, 1} 표현과 동일하다)

12)  *, +, ? 뒤에 ?가 붙으면, 각 기호에 해당되는 최소의 수만을 의미한다

*? 0, +? 1, ?? 0번 반복을 의미한다

13)  \w는 임의의 알파벳, 숫자, _(언더바)를 의미한다. 다르게 표현하면 [A-z0-9_] 이다

문자열

A1 B2 c3 d_4 e:5 ffGG77--__--

정규식

\w

결과

A1 B2 c3 d_4 e:5 ffGG77--__--

정규식

[a-z]\w+

결과

A1 B2 c3 d_4 e:5 ffGG77--__--

14)  \W는 임의의 알파벳, 숫자, _(언더바)를 제외한 문자를 의미한다. 다르게 표현하면 [^A-z0-9_] 이다

15)  \s는 공백문자(스페이스, 엔터, ) \S는 공백문자를 제외한 문자를 의미한다

16)  \d는 숫자를, \D는 숫자를 제외한 문자를 의미한다

17)  \b는 단어의 경계를 \B는 단어의 경계를 제외한 부분을 의미한다. 단어의 경계란 한 쪽이 \w에 속하는 문자, 다른 한쪽이 \W에 속하는 문자일 때 그 사이 지점으로 정의한다

18)  \A는 문자열의 시작을, \Z는 문자열의 끝을 의미한다. 멀티라인 문자에서 ^는 새로운 줄이 시작될 때 마다 찾지만, \A는 전체 문자열에서 한번만 찾고, $는 한 줄이 끝날 때마다 찾지만, \Z는 전체 문자열에서 한번만 찾는다는 차이점이 있다

19)  (?=<패턴>)은 특정 패턴이 다음에 이어지는지 검사하지만, 검색 결과에는 포함되지 않는다. 이와 반대로는 (?!<패턴>)이 있다

20)  패턴을 찾아서 찾은 패턴을 다른 것으로 변경할 때는 \1, \2 … 을 대입 변수로 사용한다

21)  \t (tab), \n (Line feed), \f (Form feed), \r (Carriage return), \v (vertical tab), \0 (null)

22)  \uhhhh 유니코드를 찾는 경우 사용

'Develop > JavaScript' 카테고리의 다른 글

atom 에디터 단축키 모음  (0) 2018.02.20
JavaScript 객체  (0) 2018.02.20
클로저 (Closure)  (0) 2018.02.20
arguments 객체  (0) 2018.02.20
(JavaScript)현재 시간을 구하는 방법  (0) 2018.02.20