문자열의 패턴을 간결하게 기술하는 방식을 정규표현식이라고 합니다. 특정 패턴의 텍스트 분석을 하기 위해서는 해당 표현을 이해하고 작성할 수 있어야 코드양과 비용과 시간을 줄일 수 있습니다. 이제 정규표현식에 대해 살펴보겠습니다.
일반적인 텍스트 마이닝 정규표현식은 여기 링크를 참고바랍니다.
목차
Toggle\\ 의미
- \\ 이후의 문자가 나올 시 의미를 아래의 예시를 들어 설명하겠습니다.
- \\d : d는 영어단어 ‘d’가 아닌 숫자를 의미합니다. digit의 앞자 d를 의미합니다.
- \\s : space 공백을 의미합니다.
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "\\d"
)
# Output
[[1]]
[1] "가나다\\nabc\\tABC\\n" "" "" "\\t,.!@#$ %^&*()/ ?" "" ""
[7] "<>~+" "" "" ""
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "d"
)
#Output
[[1]
[1] "가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "."
)
#Output
[[1]]
[1] "" "" "" "\\n" "" "" "" "" "" "" "\\n" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
[30] "" "" "" "" "" "" "" "" "" "" "" "" ""
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "\\."
)
#Output
[[1]]
[1] "가나다\\nabc\\tABC\\n123\\t," "!@#$ %^&*()/ ?456<>~+789"
공백 문자
- [:blank:]
- 스페이스를 포함한 공백문자와 탭만
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "[:blank:]"
)
# Output
[[1]]
[1] "가나다\\nabc" "ABC\\n123" ",.!@#$" "" "%^&*()/" "?456<>~+789"
- \\s, [:space:]
- 스페이스를 포함한 공백문자 포함
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "\\\\s"
)
# Output
[[1]]
[1] "가나다" "abc" "ABC" "123" ",.!@#$" "" "%^&*()/" "?456<>~+789"
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$ %^&*()/ ?456<>~+789"),
pattern = "[:space:]"
)
# Output
[[1]]
[1] "가나다" "abc" "ABC" "123" ",.!@#$" "" "%^&*()/" "?456<>~+789"
- \n
- 줄바꿈
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$%^&*()/?456<>~+789"),
pattern = "\\n"
)
# Output
[[1]]
[1] "가나다" "abc\\tABC" "123\\t,.!@#$%^&*()/?456<>~+789"
- \t
- 탭 한 번
str_split(
string = c("가나다\\nabc\\tABC\\n123\\t,.!@#$%^&*()/?456<>~+789"),
pattern = "\\t"
)
# Output
[[1]]
[1] "가나다\\nabc" "ABC\\n123" ",.!@#$%^&*()/?456<>~+789"
임의의 문자 패턴
- 임의의 문자와 매칭되는 패턴을 확인합니다.
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = ".다."
)
#Output
[[1]]
[1] "가" "bc123,.!@#$%^&*()/?<>~+"
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = ".a..."
)
#Output
[[1]]
[1] "가나" "23,.!@#$%^&*()/?<>~+"
특수 문자 제외한 문자열
# 문자열 한 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "\\\\w"
)
#Output
[[1]]
[1] "" "" "" "" "" ""
[7] "" "" "" ",.!@#$%^&*()/?<>~+"
# 문자열 세 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "\\\\w\\\\w\\\\w"
)
[[1]]
[1] "" "" "" ",.!@#$%^&*()/?<>~+"
특수문자 및 숫자 제외한 문자열
- [:alpha:]
# 문자열 한 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "[:alpha:]"
)
#Output
[[1]]
[1] "" "" "" "" "" ""
[7] "123,.!@#$%^&*()/?<>~+"
# 문자열 세 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "[:alpha:][:alpha:][:alpha:]"
)
#Output
[[1]]
[1] "" "" "123,.!@#$%^&*()/?<>~+"
영문 소문자
- [:lower:], [a-z]
# 문자열 한 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "[:lower:]"
)
# Output
[[1]]
[1] "가나다" "" ""
[4] "123,.!@#$%^&*()/?<>~+"
str_split(
string = c("가나다abc123ef,.!@#$%^&*()/?<>~+"),
pattern = "[a-z]"
)
# Output
[[1]]
[1] "가나다" "" ""
[4] "123" "" ",.!@#$%^&*()/?<>~+"
# 문자열 세 개
str_split(
string = c("가나다abc123,.!@#$%^&*()/?<>~+"),
pattern = "[:lower:][:lower:][:lower:]"
)
# Output
[[1]]
[1] "가나다" "123,.!@#$%^&*()/?<>~+"
영문 대문자
# 문자열 한 개
str_split(
string = c("가나다abcABC123,.!@#$%^&*()/?<>~+"),
pattern = "[:upper:]"
)
[[1]]
[1] "가나다abc" "" ""
[4] "123,.!@#$%^&*()/?<>~+"
str_split(
string = c("가나다abcABC123DEF,.!@#$%^&*()/?<>~+"),
pattern = "[A-Z]"
)
[[1]]
[1] "가나다abc" "" ""
[4] "123" "" ""
[7] ",.!@#$%^&*()/?<>~+"
# 문자열 세 개
str_split(
string = c("가나다abcABC123,.!@#$%^&*()/?<>~+"),
pattern = "[:upper:][:upper:][:upper:]"
)
[[1]]
[1] "가나다abc" "123,.!@#$%^&*()/?<>~+"