close_btn
조회 수 105622 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

일반 프로그램에서 논리연산자 or과 동일하게 사용되는 것이 바로 alternation "|" 입니다. []와의 차이점은 []의 경우 메타문자나 문자 한글자에 대해서만 적용되는 반면 "|"의 경우 문자를 묶어 문자열로 지정 가능합니다. 예제를 통해 익히지요 !

#######################################################

txt<-"010-9760-4809 053-457-8524 032-565-7765 02-745-8425 053-634-4031 054-754-1452"
ge<-gregexpr("((02)|(053))-\\d{3,4}-\\d{4}",txt,perl=TRUE)
ge
r_index<-ge[[1]]
r_long<-attr(r_index,"match.length")
substr(txt,r_index[1],r_index[1]+r_long[1]-1)
substr(txt,r_index[2],r_index[2]+r_long[2]-1)
substr(txt,r_index[3],r_index[3]+r_long[3]-1)
substr(txt,r_index[4],r_index[4]+r_long[4]-1)

 

> txt<-"010-9760-4809 053-457-8524 032-565-7765 02-745-8425 053-634-4031 054-754-1452"

위와 같이 핸드폰 번호, 지역번호를 포함한 각종 전화번호를 띄어쓰기로 구분하여 txt에 저장합니다. 여기에서 대구(053)와 서울(02) 전화번호만 추출해 내고자 합니다 !

> ge<-gregexpr("((02)|(053))-\\d{3,4}-\\d{4}",txt,perl=TRUE)

이를 위해 다음과 같이 정규표현식을 만듭니다.

"((02)|(053))-\\d{3,4}-\\d{4}"

((02)|(053)) -> 02 또는 053인 경우를 뜻합니다. 바로 alternation "|" 를 여기서 사용하였습니다 !!!!!!!!!!!!

-\\d{3,4} -> "-"로 연결한 후 숫자 3자리 또는 4자리가 연달아 나옵니다. 전화번호의 중간번호를 의미합니다.

-\\d{4} -> "-"로 연결한 후 숫자 4자리가 연달아 나옵니다. 전화번호의 끝 네자리를 의미합니다.

 

> ge
[[1]]
[1] 15 41 53
attr(,"match.length")
[1] 12 11 12
attr(,"useBytes")
[1] TRUE
attr(,"capture.start")[1,] 15 0 15
[2,] 41 41 0
[3,] 53 0 53
attr(,"capture.length")[1,] 3 0 3
[2,] 2 2 0
[3,] 3 0 3
attr(,"capture.names")
[1] "" "" ""

> r_index<-ge[[1]]
> r_long<-attr(r_index,"match.length")
> substr(txt,r_index[1],r_index[1]+r_long[1]-1)
[1] "053-457-8524"
> substr(txt,r_index[2],r_index[2]+r_long[2]-1)
[1] "02-745-8425"
> substr(txt,r_index[3],r_index[3]+r_long[3]-1)
[1] "053-634-4031"
> substr(txt,r_index[4],r_index[4]+r_long[4]-1)
[1] NA

위와 같이 대구 번호 2개와 서울번호 1개 만이 뽑혀 나옵니다 !

 

 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 초급 R 강의 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 563909
50 초급 [BigData - R강의 초급]Data Import, Data 구조 4 DataMarket2 2014.05.23 63010
49 초급 [BigData - R강의 초급] 형변환 함수 - as.numeric, as.logical 등등 2 DataMarket2 2014.05.23 82642
48 초급 [BigData - R강의 초급] 패키지(Package)설치하고 로드(Load)하기 1 DataMarket2 2014.05.23 75174
47 초급 [BigData - R강의 초급] 정규표현식 regular expression 4강 (1) – Anchors "^", "$" 2 DataMarket2 2014.05.23 110546
» 초급 [BigData - R강의 초급] 정규표현식 regular expression 3강 – alternation "|" DataMarket2 2014.05.23 105622
45 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(4) – 게으른 수량자 "+?", "*?", "{n,}?" 1 DataMarket2 2014.05.23 118716
44 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(3) – 수량자 "?" 1 DataMarket2 2014.05.23 118188
43 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(2) – 수량자 {} 1 DataMarket2 2014.05.23 112442
42 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(1) – 수량자 “+”, “*” DataMarket2 2014.05.23 115671
41 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(4) – 문자열 형태표현 ".", "\W", "\D", "\S" DataMarket2 2014.05.23 102637
40 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(3) – 문자열 형태표현 "\p{Hangul}"(한글), 특수문자 2 DataMarket2 2014.05.23 110674
39 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(1) – 문자열 형태표현 ".", "\w" 3 DataMarket2 2014.05.23 122488
38 초급 [BigData - R강의 초급] 원하는 함수(패키지)를 찾고 사용 하는 법 1 DataMarket2 2014.05.23 48709
37 초급 [BigData - R강의 초급] 문자열 포멧 출력 – sprintf 함수 1 DataMarket2 2014.05.23 65488
36 초급 [BigData - R강의 초급] 문자열 패턴 regular expression 연습 DataMarket2 2014.05.23 76564
35 초급 [BigData - R강의 초급] 문자열 찾아바꾸기 – sub, gsub 1 DataMarket2 2014.05.23 98264
34 초급 [BigData - R강의 초급] 문자열 일부 추출 – substr(), str_sub() 비교 2 DataMarket2 2014.05.23 111209
33 초급 [BigData - R강의 초급] 문자열 이어붙이기 - paste, paste0 함수 1 DataMarket2 2014.05.23 76152
32 초급 [BigData - R강의 초급] 문자열 나누기 – strsplit, str_split DataMarket2 2014.05.23 113777
31 초급 [BigData - R강의 초급] 문자열 길이 – nchar 함수 1 DataMarket2 2014.05.23 63186
Board Pagination ‹ Prev 1 2 ... 3 Next ›
/ 3

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5