반응형

도움이 되는 사이트


출처 : 엘리의 드림코딩 - 정규표현식 깃허브(https://github.com/dream-ellie/regex)

Groups and ranges

 

Chracter

|

또는

()

그룹

[]

문자셋, 괄호안의 어떤 문자든

[^]

부정 문자셋, 괄호안의 어떤 문가 아닐때

(?:)

찾지만 기억하지는 않음

Quantifiers

Chracter

?

없거나 있거나 (zero or one)

*

없거나 있거나 많거나 (zero or more)

+

하나 또는 많이 (one or more)

{n}

n번 반복

{min,}

최소

{min,max}

최소, 그리고 최대

Boundary-type

Chracter

\b

단어 경계

\B

단어 경계가 아님

^

문장의 시작

$

문장의 끝

Character classes

 

Chracter

\

특수 문자가 아닌 문자

.

어떤 글자 (줄바꿈 문자 제외)

\d

digit 숫자

\D

digit 숫자 아님

\w

word 문자

\W

word 문자 아님

\s

space 공백

\S

space 공백 아님

 


Titanic Data 에서의 적용

 

Name 필드에는 아래와 같은 이름들이 있다.

 

Bonnell, Miss. Elizabeth

Nasser, Mrs. Nicholas (Adele Achem)

Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)

Williams-Lambert, Mr. Fletcher Fellows

Clarke, Mrs. Charles V (Ada Maria Winfield)

Ford, Miss. Doolina Margaret "Daisy"

Duff Gordon, Lady. (Lucille Christiana Sutherland) ("Mrs Morgan")

Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)

 

 

 

여기에서 우리는 Miss, Mrs, Lady와 같은 호칭을 뽑아내려고 한다.

이 때 정규표현식을 사용해서 R에서 가져오게 되는데 아래와 같은 표현식을 사용한다.

 

full$Title <- gsub('(.*, )|(\\..*)', '', full$Name)

여기서 '\\'로 '\'가번 쓰이는 것은, R에서는 '\'를 '\\'로 써야 백대시로 인식하기 때문이다.

 

gsub은 대체시키는 함수이다.

대체시키려는 값과 대체시키는 값을 차례로 Paramter로 받는다.

 

결과는 아래와 같다.

 

(.*, ) - 콤마와 공백 앞에 있는 모든 값

| - 또는

(\..*) - 점 다음에 있는 모든 값

 

R에서 사용할 때는 \\를 \ 대신 사용한다는 것이 포인트였다.

정규표현식은 문자열을 다루기 위해서는 반드시 배워야할 필요가 있다는 점을 이해했다.

다음에 문자열을 다룰 때에는 좀더 편하게 다룰 수 있을 것 같다.

 

반응형

+ Recent posts