[R] 정규표현식 정리

안녕하세요.

오늘 R에서 정규 표현식을 표현하는 함수정리하는 시간을 갖도록 하겠습니다.


[R] 정규표현식 정리 1

R의 정규 표현식에 대한 함수 및 예제

▣ R 정규표현식의 기능 요약

  1. str_detect(): 이 함수는 확인에 사용됩니다.

    문자열에 패턴이 있는 경우. 패턴이 발견되었는지 여부를 나타내는 논리값(TRUE 또는 FALSE)을 반환합니다.

  2. str_subset(): 이 함수는 추출에 사용됩니다.

    문자열에서 일치시킬 패턴입니다.

    일치하는 패턴을 문자열로 반환합니다.

  3. str_extract(): 이 함수는 문자열에서 패턴의 첫 번째 일치 항목을 추출하는 데 사용됩니다.

    일치하는 첫 번째 패턴을 문자열로 반환합니다.

  4. str_extract_all(): 이 함수는 문자열에서 일치하는 패턴을 모두 추출하는 데 사용됩니다.

    일치하는 모든 패턴을 포함하는 문자형 벡터를 반환합니다.

  5. str_replace(): 이 함수는 문자열의 패턴을 다른 문자열로 바꾸는 데 사용됩니다.

    . 교체된 패턴으로 수정된 문자열을 반환합니다.

  6. str_split(): 이 함수는 패턴에 따라 문자열을 조각으로 분할하는 데 사용됩니다.

    슬라이스 조각을 항목으로 포함하는 목록을 반환합니다.

  7. str_count(): 이 함수는 패턴이 일치하는 횟수를 세는 데 사용됩니다.

    선. 일치하는 수를 나타내는 정수 값을 반환합니다.

: 메타문자 모음

메타문자 세부 사항
“^” 문자열의 시작
“$” 문자열의 끝
“.” 각 개별 문자의 의미, 단독으로 사용될 때 각 문자
“?” 앞이나 뒤의 아니오 또는 특정 문자
“|” 또는 (또는) 의미
“+” 1개 이상의 이전 문자
“*” 0개 이상의 이전 문자
“()” 각각 OR 의미를 갖는 문자 그룹으로 표현
“{n,m}” n 이상 m 이하 (생략 가능)
“()” 문자와 의미의 그룹화를 통해 표현
“\” 메타 문자 대신 리터럴로 만들기 위해 이스케이프 문자

※ 이스케이프 문자

\ + 일반 문자 의미
\N 새 줄
\티
\에스
\에스 비어있지 않다
\디 숫자
\디 번호 없음
\w 소식
\W 문자하지마
\비 단어 경계

※ 특수 표현

(::) 의미
(:숫자:) 숫자
(:알파:) 소식
(:낮추다:) 소문자
(:위, 위 🙂 대문자
(:alnum:) 문자 + 숫자
(:가리키다:) 징후
(:그래프:) 문자 + 숫자 + 기호
(:공간:) 거리
(:비어 있는:) 스페이스 + 탭

: 간단한 정규표현식 예시

# 과일 이름 벡터에서 "사과"라는 단어를 포함하는 요소 검색
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 [email protected] and my friend's email is [email protected]."
regmatches(text, gregexpr("\\b(A-Za-z0-9._%+-)+@(A-Za-z0-9.-)+\\.(A-Z|a-z){2,}\\b", text, perl = TRUE))
# Output: "[email protected]" "[email protected]"