본문 바로가기

소프트웨어/개발관련

정규 표현식을 배워보자 #07 캐릭터 클래스

 

원문은 ZVON의 Regular Expressions Tutorial을 참조하면됨

 

먼저 정규식에서 사용되는 특수의미의 문자들 정리부터하고...

\w

 영숫자 문자나 밑줄과 일치. [a-zA-Z0-9_]

\W

 \w와 반대로 일치. [^a-zA-Z0-9_]

\d

 모든 숫자와 일치. [0-9]와 동일

\D

 \d와 반대. [^0-9]와 동일

\s

 White space문자들(space(공백), tab(), new line(엔터키) 등과 같은 문자 찾기. [\f\n\r\t\v]

\S

 \s와 반대로 일치. [^\f\n\r\t\v]

\cx

 x로 표시된 제어문자 찾기. x [A-Za-z] 이어야 함. 아니면 c는 리터럴 'c'로 간주

 ) \cM = Control-M 이나 캐리지 리턴 문자

\xn

 n으로 표시된 16진수 이스케이프 값과 일치. 16진수는 정확히 2자리여야 함

\0n

 n으로 표시된 8진수 숫자와 일치. 가급적 사용하지 않는 것이 좋음

\t

 탭 문자 찾기. \x09, \cI

\v

 세로 탭 문자 찾기. \x0b, \cK

\n

  바꿈 문자 찾기. \x0a, \cJ

\r

 캐리지 리턴. \x0d, \cM

\f

 용지 공급 문자 찾기페이지 넘기기(formfeed) = \x0a3, \cL

[\b]

 역스페이스

 

Page 18 

캐릭터 클래스의 사용법을 설명

Source

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

캐릭터 클래스는 [ ]안에 넣어주어야 하는 문자들을 미리 정의해둔 개념으로, [ ]안에 문자들을 쓰는것과 동일하지만, 검색패턴의  글자 수를 줄일 수 있기 때문에 알아두면 편리함

Test Case

Case 1

Regular Expression:

\w

First match:

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

All matches:

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

\w는 대문자와 소문자, 숫자와 _(밑줄)의 집합, 즉 표현식 [a-zA-Z0-9_]의 의미

Case 2

Regular Expression:

\w*

First match:

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

All matches:

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

\w뒤에 수량자 *가 왔으므로, 대문자와 소문자, 숫자와 _으로 시작하는 임의의 길이에 해당하는 문자열을 의미

Case 3

Regular Expression:

[a-z]\w*

First match:

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

All matches:

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

소문자로 시작하는 문자열중 대문자와 소문자, 숫자와 _으로 구성되는 임의의 문자열을 의미

Case 4

Regular Expression:

\w{5}

First match:

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

All matches:

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

대문자와 소문자, 숫자와 _으로 구성되는 5자리 임의의 문자열을 의미

Case 5

Regular Expression:

[A-z0-9_]

First match:

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

All matches:

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

\w와 동일한 의미

 

 Page 19 

캐릭터 클래스의 사용법을 설명

Source

AS _34:AS11.23  @#$ %12^*

캐릭터 클래스는 [ ]안에 넣어주어야 하는 문자들을 미리 정의해둔 개념으로, [ ]안에 문자들을 쓰는것과 동일하지만, 검색패턴의  글자 수를 줄일 수 있기 때문에 알아두면 편리함

Test Case

Case 1

Regular Expression:

\W

First match:

AS _34:AS11.23 @#$ %12^*

All matches:

AS _34:AS11.23 @#$ %12^*

\W는 대문자와 소문자, 숫자와 _(밑줄)을 제외한 문자의 집합, 표현식 [^a-zA-Z0-9_]의 의미

Case 2

Regular Expression:

\w

First match:

AS _34:AS11.23 @#$ %12^*

All matches:

AS _34:AS11.23 @#$ %12^*

대문자와 소문자, 숫자와 _(밑줄)에 해당하는 문자를 의미

Case 3

Regular Expression:

[^A-z0-9_]

First match:

AS _34:AS11.23 @#$ %12^*

All matches:

AS _34:AS11.23 @#$ %12^*

[ ]안에서 ^가 사용되면 부정의 의미이므로 [^A-z0-9_]는 대문자와 소문자, 숫자와 _(밑줄)을 제외한 문자의 집합, 캐릭터 클래스 \W 와 동일한 의미

 

Page 20

캐릭터 클래스의 사용법을 설명


Page 21

캐릭터 클래스의 사용법을 설명

Source

Page 123; published: 1234 id=12#24@112

캐릭터 클래스는 [ ]안에 넣어주어야 하는 문자들을 미리 정의해둔 개념으로, [ ]안에 문자들을 쓰는것과 동일하지만, 검색패턴의  글자 수를 줄일 수 있기 때문에 알아두면 편리함

Test Case

Case 1

Regular Expression:

\d

First match:

Page 123; published: 1234 id=12#24@112

All matches:

Page 123; published: 1234id=12#24@112

\d는 숫자 0~9까지를 의미, 표현식 [0-9_] 또는 [0123456789]의 의미

Case 2

Regular Expression:

\D

First match:

Page 123; published: 1234 id=12#24@112

All matches:

Page 123; published: 1234id=12#24@112

\D\d의 반대를 의미, 표현식 [^0-9_] 또는 [^0123456789]의 의미

Case 3

Regular Expression:

[0-9]

First match:

Page 123; published: 1234 id=12#24@112

All matches:

Page 123; published: 1234id=12#24@112

\d와 같은 의미. 만일 개발 언어에서 \d를 지원하지 않으면 [0-9]를 사용