안녕하세요.
오늘은 R로 정규표현식을 표현하는 함수들에 대해 정리해보는 시간을 가져보겠습니다.
R 정규표현식 함수 및 예제
▣ 정규표현식 함수 정리 in R
- str_detect(): 이 함수는 확인하는 데 사용됩니다. 문자열에 패턴이 있는 경우. 패턴이 발견되었는지 여부를 나타내는 논리 값(TRUE 또는 FALSE)을 반환합니다.
- str_subset(): 이 함수는 추출하는 데 사용됩니다. 문자열에서 일치하는 패턴. 일치하는 패턴을 문자열로 반환합니다.
- str_extract(): 이 함수는 문자열에서 패턴의 첫 번째 일치를 추출하는 데 사용됩니다. 첫 번째로 일치하는 패턴을 문자열로 반환합니다.
- str_extract_all(): 이 함수는 문자열에서 패턴의 모든 일치 항목을 추출하는 데 사용됩니다. 일치하는 모든 패턴이 포함된 문자 벡터를 반환합니다.
- str_replace(): 이 함수는 문자열의 패턴을 다른 문자열로 바꾸는 데 사용됩니다. . 패턴이 교체된 수정된 문자열을 반환합니다.
- str_split(): 이 함수는 패턴을 기반으로 문자열을 조각으로 분할하는 데 사용됩니다. 분할된 조각을 요소로 포함하는 목록을 반환합니다.
- str_count(): 이 함수는 패턴의 일치 수를 세는 데 사용됩니다. 문자열. 일치하는 수를 나타내는 정수 값을 반환합니다.
: 메타문자 모음
메타문자 | 내용 |
"^" | 문자열의 시작지점 |
"$" | 문자열의 끝지점 |
"." | 임의의 한 글자 의미, 단독 사용시 모든 문자 |
"?" | 앞뒤 지정된 문자가 없거나 하나 있음 |
"|" | OR(또는) 의미 |
"+" | 앞 문자 1개 이상 |
"*" | 앞 문자 0개 이상 |
"[]" | 문자 묶어서 표현, 각각 OR 의미 |
"{n,m}" | 앞 문자 n개 이상, m개 이하 (생략 가능) |
"()" | 문자 묶어서 표현, AND 의미 |
"\" | 메타문자가 아닌 문자 그대로 만들어주는 이스케이프 문자 |
※ 이스케이프 문자
\ + 일반문자 | 의미 |
\n | 줄바꿈 |
\t | 탭 |
\s | 공백 |
\S | 공백아님 |
\d | 숫자 |
\D | 숫자아님 |
\w | 문자 |
\W | 문자아님 |
\b | 단어경계 |
※ 특수표현
[: : ] | 의미 |
[:digit:] | 숫자 |
[:alpha:] | 문자 |
[:lower:] | 소문자 |
[:upper:] | 대문자 |
[:alnum:] | 문자+숫자 |
[:punct:] | 기호 |
[:graph:] | 문자+숫자+기호 |
[:space:] | 띄어쓰기 |
[:blank:] | 띄어쓰기+탭 |
: 간단한 정규표현식 예시
# 과일 이름 벡터에서 "사과"라는 단어를 포함하는 요소 검색
fruit <- c("apple", "banana", "orange", "grape")
grep("apple", fruit)
# Output: 1
# 문자열에서 모든 "cat" 단어를 "dog"로 바꾸기 (replace)
text <- "I have a cat named Fluffy and another cat named Mittens."
gsub("cat", "dog", text)
# Output: "I have a dog named Fluffy and another dog named Mittens."
# 문자열에서 "cat"라는 단어의 첫 번째 항목을 "dog"로 바꾸기
text <- "I have a cat named Fluffy and another cat named Mittens."
sub("cat", "dog", text)
# Output: "I have a dog named Fluffy and another cat named Mittens."
# 문자열에서 "사과"라는 단어의 위치 찾기
text <- "I like to eat apples."
regexpr("apple", text)
# Output: 17
# 문자열에서 유효한 전자 메일 주소의 패턴과 일치하는 모든 하위 문자열 찾기
text <- "My email is john@example.com and my friend's email is jane@example.com."
regmatches(text, gregexpr("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b", text, perl = TRUE))
# Output: "john@example.com" "jane@example.com"
반응형
'Programming > R' 카테고리의 다른 글
[R] 파이 차트 (Pie Chart) (0) | 2023.01.23 |
---|---|
[R] 버블 차트 (Bubble Chart) (0) | 2023.01.14 |
[R] 워드 클라우드(WordCloud) 설명 및 예시 (0) | 2023.01.11 |
[R] 히스토그램(histogram) 그리기 (2) | 2023.01.08 |
[R] 데이터 전처리, 결측치 (0) | 2022.08.07 |
댓글