도움이 되는 사이트
- 엘리의 드림코딩 - 정교표현식(https://www.youtube.com/watch?v=t3M6toIflyQ)
- 정규표현식 연습사이트(https://regexr.com/5mhou)
- 엘리의 드림코딩 - 정규표현식 깃허브(https://github.com/dream-ellie/regex)
출처 : 엘리의 드림코딩 - 정규표현식 깃허브(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에서 사용할 때는 \\를 \ 대신 사용한다는 것이 포인트였다.
정규표현식은 문자열을 다루기 위해서는 반드시 배워야할 필요가 있다는 점을 이해했다.
다음에 문자열을 다룰 때에는 좀더 편하게 다룰 수 있을 것 같다.
끝
'Data > R' 카테고리의 다른 글
R) R Markdowon 설치 시 에러(Error in install.packages : ERROR: failed to lock directory) (0) | 2021.02.14 |
---|---|
R) 명령어로 버전 업그레이드 하기 (1) | 2021.02.12 |
R) Data Frame 다루기 (0) | 2021.02.06 |
R) rvest와 httr 이용해서 네이버 실시간 증권 뉴스 크롤링 (0) | 2021.01.05 |
R) lapply와 sapply의 차이 (0) | 2020.04.23 |