Stack Building

R 정규표현식 기초 본문

R

R 정규표현식 기초

S00ahKim 2019. 3. 7. 00:11

정규표현식regular expression/regex은

파이썬이나 자바 외 많은 프로그래밍 언어에서 지원하는 일종의 패턴 표기 방법으로,

특정한 규칙을 가진 문자열을 검색하는 데에 사용하기 용이하다.

 

R 크롤링 특강을 수강하기 전에 미리 공부하면 좋다고 하여 포스팅을 정리하게 되었다.

 

R에서 정규표현식은 크게 두 가지로 구분하여 작성한다.

"\" [ ] 이다.

 

\는 파이썬에서 배웠던 이스케이프 코드를 생각나게 한다.

그 뒤에 어떤 문자를 붙이면 해당 문자를 검색하게 해주는 패턴이 된다.

 

예를 들어 알파벳 a를 찾고 싶을 경우의 정규식은 "\a"가 된다.

그러나 일부 글자의 경우 다른 것을 뜻한다고 미리 정해져있는 경우가 있다.

 

w는 word의 약어로, 알파벳(영소문자, 영대문자), 숫자, 언더스코어( _ )를 의미한다.

d는 digit의 약어로, 숫자와 언더스코어를 의미한다.

s는 space의 약어로, 공백, 탭, 개행을 의미한다.

 

많이 쓰이는 약어라서 세 가지만 소개했지만 실제로는 더 존재한다.

 

 

만일 w, d, s 글자 자체를 패턴으로 만들고 싶을 경우에는

\를 두 번 표기하면 된다. 예를 들면 "\\s"와 같다.

 

"."의 경우는 조금 특별하다.

공백을 포함하되 개행을 제외한 모든 문자를 의미한다.

 

때로는 조금 더 복잡한 작업을 수행하고 싶을 때가 있다.

그럴 경우 사용하는 것이 복합적인 표현이 가능한 [] 이다.

 

[abc] 는 a, b 또는 c를 의미한다.

즉 셋 중에 하나라도 존재하면 조건을 만족한다.

 

[^abc]는 a,b,c를 제외한 모든 것을 의미한다.

알파벳이 아닌 문자도 포함한다.

 

범위를 지정하고 싶은 경우 -를 사용하면 된다.

[a-z]는 a부터 z까지의 모든 알파벳을 의미한다.

한글의 경우, [가-힣]으로 설정할 수 있다.

 

"."은 [^\n\r]로 대체하여 쓸 수 있고

"\w"은 [A-Za-z0-9_]로 대체하여 쓸 수 있고

"\d"는 [0-9]로 대체하여 쓸 수 있다.

 

 

요약

 \a

 문자 a를 찾는 패턴

 [abc]

 a나 b나 c를 포함하는 것

 \w

 영어 대소문자, 숫자 및 _

 [^abc]

 a,b,c 외의 모든 문자

 \d

 숫자와 _

 [a-z]

 a부터 z까지

 \s

 공백, 탭, 개행

 .

 모든 문자

 

 

[공식 문서] https://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html

[연습 사이트] https://regexr.com/

 

 

'R' 카테고리의 다른 글

블로그 게시물 제목 크롤링  (0) 2019.03.29
이미지 크롤링  (0) 2019.03.27
실시간 검색어 크롤링  (0) 2019.03.17
R 정규표현식 연습  (0) 2019.03.08
R 정규표현식 만들기  (0) 2019.03.08
Comments