close_btn
조회 수 144200 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

아래 표 중 수량자 ?는 직전 패턴이 0회 혹은 1회 출현하는 경우를 나타냅니다. 이는 전화번호 예제를 통해 익혀보지요 !

수량자

의미

+

1회 이상 직전 패턴을 연속해서 만족

*

0회 혹은 1회 이상 직전 패턴 연속해서 만족

{3}

직전 패턴 3회 연속해서 만족

{1,3}

직전 패턴 1~3회 연속해서 만족

? (optional)

직전 패턴 0회 혹은 1회

? (lazy)

해당문자열에서 직전 패턴을 만족하는 match 중 최소 길이만큼

 

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

txt<- "01092701209 010-9270-1209 75615454512 831211-1754856"
ge<-gregexpr("0\\d{2}-?\\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)

 

> txt<- "01092701209 010-9270-1209 75615454512 831211-1754856"

위는 "01092701209 010-9270-1209 75615454512 831211-1754856"로 첫번째 두번째 전화번호와 세번째 무의미한 번호 조합 네번째 주민등록번호로 이루어져 있습니다. 이중에 전화번호만 추출하고 싶습니다 !

 

> ge<-gregexpr("0\\d{2}-?\\d{3,4}-?\\d{4}",txt,perl=TRUE)

전화번호는 첫자리수가 0으로 시작하고 맨앞번호가 3자리 그다음 3자리혹은4자리 마지막 4자리로 이루어져있습니다.
그런데 이것이 "-"으로 연결되어 있을 수도 있고 아닐 수도 있습니다. 바로 여기에 "?"가 사용됩니다.

0\\d{2}로 앞의 3자리를 표현합니다. 숫자 0에 이어서 숫자가 연속해서 2개가 나온다 라는 말이지요.

-?을 이용해서 "-"가 들어가도 되고 안들어가도 된다는 것을 표현합니다.

\\d{3,4}로 중간자리수가 세자리 혹은 네자리 임을 표현하구요

-?을 이용하여 다시 "-"가 들어올 수 있음을 표현합니다.

\\d{4}로 마지막 네자리를 마무리 하지요.

 

> r_index<-ge[[1]]
> r_long<-attr(r_index,"match.length")
> substr(txt,r_index[1],r_index[1]+r_long[1]-1)
[1] "01092701209"
> substr(txt,r_index[2],r_index[2]+r_long[2]-1)
[1] "010-9270-1209"
> substr(txt,r_index[3],r_index[3]+r_long[3]-1)
[1] NA

그 결과 위와 같이 전화번호만 뽑히게 됩니다 !

?
  • ?
    meadc 2017.02.09 18:21 SECRET

    "비밀글입니다."

  • ?
    박성배시장 2022.04.22 14:42
    리니지 프리서버 로즈서버 시즌34 : 유지

    로즈만의 매력이 넘치는 독자적 시스템
    PVP 랭킹 티어 시스템으로 유저간 전투 활성화
    매주 레벨/인챈트 제한 및 아데나/경험치 배율 상향으로 언제 시작해도 늦지 않습니다
    무과금 유저들도 모든 컨텐츠 정복 가능
    오랜 테스트와 끊임없는 업데이트로 클래스간 전투 밸런스 PERFECT!
    https://linmaster.net/bbs/board.php?bo_table=promote&wr_id=80747
    아데나 구매관련 정보는 로즈샵 에서 확인하세요
    아이템 및 패키지 형태의 상품은 판매하지 않습니다

    리니지 프리서버 홍보 린마스터
  • ?
    라트비아스 2022.06.07 14:34
    정확한 위치 기반 TMAP 티맵 키워드 검색 광고

    리뷰모아 - http://review-moa.net/
    제품리뷰 - http://review-moa.net/
    베트남 자유여행 - http://review-moa.net/
    이세상 모든 리뷰 - http://review-moa.net/
    베트남 다낭 자유여행 정보 - http://review-moa.net/
    티맵 키워드 광고 - http://review-moa.net/
    에스맵 - http://review-moa.net/
    SMAP - http://review-moa.net/

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 초급 R 강의 게시판 이용 관련 공지사항 3 DataMarket 2014.05.21 673160
50 초급 [BigData - R강의 초급] 정규표현식 regular expression 4강 (1) – Anchors "^", "$" 3 DataMarket2 2014.05.23 154799
49 초급 [BigData - R강의 초급] 정규표현식 regular expression 3강 – alternation "|" 1 DataMarket2 2014.05.23 395819
48 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(4) – 게으른 수량자 "+?", "*?", "{n,}?" 2 DataMarket2 2014.05.23 145397
» 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(3) – 수량자 "?" 3 DataMarket2 2014.05.23 144200
46 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(2) – 수량자 {} 1 DataMarket2 2014.05.23 138326
45 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(1) – 수량자 “+”, “*” DataMarket2 2014.05.23 142992
44 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(4) – 문자열 형태표현 ".", "\W", "\D", "\S" DataMarket2 2014.05.23 127426
43 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(3) – 문자열 형태표현 "\p{Hangul}"(한글), 특수문자 2 DataMarket2 2014.05.23 138653
42 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(2) – 문자열 형태표현 “\d”, “\s” DataMarket2 2014.05.23 125854
41 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(1) – 문자열 형태표현 ".", "\w" 4 DataMarket2 2014.05.23 152205
40 초급 [BigData - R강의 초급] 따옴표를 문자열로 인식시키려면? - escaper \ 1 DataMarket2 2014.05.23 94173
39 초급 [BigData - R강의 초급] 문자열 패턴 regular expression 연습 DataMarket2 2014.05.23 96252
38 초급 [BigData - R강의 초급] 문자열 검색 – grep, regexpr, gregexpr DataMarket2 2014.05.23 131233
37 초급 [BigData - R강의 초급] 문자열 찾아바꾸기 – sub, gsub 1 DataMarket2 2014.05.23 122046
36 초급 [BigData - R강의 초급] 문자열 나누기 – strsplit, str_split DataMarket2 2014.05.23 141720
35 초급 [BigData - R강의 초급] 문자열 일부 추출 – substr(), str_sub() 비교 2 DataMarket2 2014.05.23 143746
34 초급 [BigData - R강의 초급] 문자열 포멧 출력 – sprintf 함수 1 DataMarket2 2014.05.23 84650
33 초급 [BigData - R강의 초급] 문자열 길이 – nchar 함수 1 DataMarket2 2014.05.23 80423
32 초급 [BigData - R강의 초급] 문자열 이어붙이기 - paste, paste0 함수 1 DataMarket2 2014.05.23 96905
31 초급 [BigData - R강의 초급] 결측치 처리 함수 - complete.cases DataMarket2 2014.05.23 72546
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