정규표현식을 활용한 문자열 가공: 개념적 접근
정규표현식을 활용한 문자열 데이터 가공: 개념적 접근
- 정규표현식은 문자열 패턴을 나타낸다. 이를 활용해서 다음과 같은 작업을 할 수 있다.
- 탐지 : 정규표현식 패턴이 있느냐? 없느냐?
- 어디에 있느냐? 문자열의 어디서부터 어디까지가 패턴과 일치하는가?
- 무엇이 있느냐? 패턴과 일치하는 문자열의 내용은 무엇인가?
- 그것으로 무엇을 할 것인가?
- 정보를 알려준다. 패턴이 있느냐, 어디에 있느냐, 무엇이 있느냐.
- 치환: 일치하는 패턴을 다른 문자열로 바꾼다.
- 분리: 일치하는 패턴을 기준으로 문자열을 분리한다.
- 정규표현식으로 가능한 작업은 크게 두 가지로 나눠볼 수 있다. 문자열에 어떤 변형도 가하지 않고 정보만 얻는 경우와 문자열에 어떤 변형을 하는 경우.
패턴과 일치하는 부분과 관련된 정보
- 정규표현식에 일치하는 패턴의 존재 유무와 존재한다면 무엇이, 그리고 어디에 존재하는가?
- 이때 패턴과 일치하는 부분이 한 개 존재하는 경우와 여러 개 존재하는 경우를 나눠볼 수 있다. 여러 개 존재하는 경우, 관심의 대상이 첫 번째 일치하는 부분인가? 마지막에 일치하는 부분인가? 일치하는 부분 모두인가?로 다시 나눠볼 수 있다.
- 일치 패턴의 존재 유무 :
grep
,grepl
,stri_detect
- 일치하는 위치 :
regexpr
,stri_locate
- 일치하는 부분의 문자열 :
stri_extract
- 일치하는 부분의 문자열(정규표현식에서
(
과)
로 둘러싸인 부분 패턴을 포함해서) :stri_match
패턴과 일치하는 부분을 활용하여 가공하기
- 패턴을 사용하여 문자열을 가공하는 방법은 크게 1) 치환하는 방법과 2) 일치하는 부분을 기준으로 문자열을 분리하는 방법으로 나눠 볼 수 있다. 이때에도 패턴과 일치하는 부분이 여럿이라면 첫 번째 일치하는 부분만 사용하는 경우와 마지막 부분만 사용하는 경우, 그리고 모든 부분을 사용하는 경우로 나눠볼 수 있다.
- 치환 : 치환은 제거를 포함한다. (제거하기 위해서는
''
으로 치환하면 된다.)- 첫번째 일치 부분 치환 :
sub
,stri_replace_first
- 모든 일치 부분 치환 :
gsub
,stri_replace_all
- 마지막 일치 부분 치환 :
stri_replace_last
- 첫번째 일치 부분 치환 :
- 분리
- 모든 일치 부분에 대해 분리 :
strsplit
,stri_split
- 모든 일치 부분에 대해 분리 :
Leave a comment