안녕하세요
푸디헬스입니다.
오늘은 웹크롤링에 쓰이는 정규표현식 Text의 기초 함수에 대해 알려드릴게요!!><
Text
Pole이라는 문자가 c("Equator", "North Pole", "South Pole")
중 존재하는 위치를 반환합니다.
Pole이 존재하지 않으면 integer(0)를 반환해요!
nchar(number of character) : 문자의 개수를 알려줍니다. 띄어쓰기 포함이에요!
substr(substring) : Equator에서 2번째부터 4번째까지 잘라서 보여줍니다.
strsplit(string split) : 앞의 문자를 - 를 기준으로 나누어줘요!
regexpr : pattern문자인 uat가 Equator에 몇 번째부터 시작하는지 몇 자리인지 알려줘요!
맨 위부터 시작한 위치, 문자의 개수, usebytes : yes
regexpr과 똑같지만 한 가지가 달라요!
gregexpr은 모두 보여줘요
regexpr은 가장 첫 번 째겠만 보여준답니다!
파일을 다운로드하여서 코드를 실행해보시면 금방 이해하실 수 있을 거예요!!
정규표현식
. 은 아무 문자 1 나를 의미해요
patter = "h.c" : h로 시작하고 c로 끝나는데 글자 수가 3개인 문자
hello* : hell에서 o가 0개 이상 붙을 수 있는 모든 문자.
* 특수문자는 바로 앞의 문자를 나타내요! *는 바로 앞의 문자가 없거나 하나 이상 반복한다는 의미를 가진답니다.
만약 a*라고 쓰여있는 패턴이 있다면, a, aa, aaa 등이 가능해요.
* 특수문자를 사용할 때 주의해야 할 점은 패턴을 지정할 때 * 앞에는 한 글자 이상의 단어가 반드시 있어야 한답니다!
hell에 o가 한 개 이상 붙은 패턴
a에 b가 한 개 이상 붙고 c로 끝나는 패턴
+ 특수문자는 * 특수문자와 비슷하지만, *특수문자와는 달리 반드시 하나 이상의 문자가 반복을 해야 해요!
hello? : hell 또는 hello
try? : tr 또는 try
? 특수문자의 바로 앞의 문자가 하나가 있거나, 없거나를 의미합니다. 예를 들어
a? c라고 패턴을 지정하면 c 또는 ac를 의미합니다
^Hello : Hello로 시작하는 문자
^ 특수문자는 문장의 처음을 나타내요! 예를 들어
^Hello라고 작성된 패턴이 있다면 해당 패턴에 일치하기 위해 문자열은 반드시 Hello로 시작해야 해요!
world$ : world로 끝나는 문장
$ 특수문자는 문장의 끝을 나타냅니다.
[abc] : a나 b나 c가 들어간 문자열
^[abc] : a나 b나 c로 시작하는 문자열
^[0-9] : 숫자로 시작하는 문자열
0-9 : 0부터 9까지 숫자를 의미해요!
대괄호 [] 특수문자의 의미는 괄호 안의 문자 중 일치하는 것을 찾고자 할 경우 사용합니다. 예를 들어
[abc]라고 패턴을 작성하게 되면 문자열에 a나 b혹은 c 등이 있어야 해요!
gu {5} ggle : guuuuuggle를 의미
gu {5,} ggle : g+u가 5개 이상+ggle 문자열
gu {2,4} ggle : g + u가 2개 이상 4개 이하+ggle 문자열
중괄호 {} 특수문자는 {} 특수문자 앞의 문자나 문자열의 반복되는 개수를 의미해요! 예를 들어
hel {2} o라는 패턴을 작성하면 hello문자열이 문 장려에 포함되어 있어야 해요!
(hello){3} : hellohellohello의미
(hello)+z : hello가 한번 이상이고 z로 끝나는 문자열
소괄호 () 특수문자는 () 특수문자 안의 글자들을 하나의 문자로 봐요! 예를 들어 gu(gg){2} le 패턴은 guggggle를 의미해요
man|woman man : man 또는 woman man
| 특수문자는 or연산을 의미해요. 예를 들어
hi | hello는 hi나 hello가 포함되어있는 문자열을 의미해요
그 외
지금까지 정규포 현식의 기초가 되는 text함수에 대해 알아보았어요!
정규표현식은 웹크롤링을 할 때 필요하니 꼭 알아두셔야 해요!!
그럼 오늘의 포스팅은 이만 마칠게요!
궁금한 거 있으시면 댓글 달아주시고
(회기역 근처에서 R 기초 과외하고 있으니 관심 있으신 분은 jwj4519@naver.com 또는 jwj4519(카톡 ID)로
연락 주세요^^)
다음에 뵙겠습니다!!
댓글