close_btn
조회 수 104349 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

 

수량자

의미

+

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

*

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

{3}

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

{1,3}

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

? (optional)

직전 패턴 0회 혹은 1회

? (lazy)

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

위의 표 중 수량자 {}는 직전 패턴이 연속해서 만족하는 횟수를 지정해주는 표현식입니다 !

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

txt<- c("0 01 012 0123 01k234")ge<-gregexpr("\\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)

ge<-gregexpr("\\d{1,2}",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)
substr(txt,r_index[5],r_index[5]+r_long[5]-1)
substr(txt,r_index[6],r_index[6]+r_long[6]-1)

 

> txt<- c("0 01 012 0123 01k234")
>
> ge<-gregexpr("\\d{4}",txt,perl=TRUE)
> ge
[[1]]
[1] 10
attr(,"match.length")
[1] 4
attr(,"useBytes")
[1] TRUE> r_index<-ge[[1]]
> r_long<-attr(r_index,"match.length")
> substr(txt,r_index[1],r_index[1]+r_long[1]-1)
[1] "0123"
> substr(txt,r_index[2],r_index[2]+r_long[2]-1)
[1] NA
> substr(txt,r_index[3],r_index[3]+r_long[3]-1)
[1] NA

"0 01 012 0123 01k234" 중  \d{4}로 숫자가 4번연속 출현한 경우를 만족하는 경우는 0123 뿐입니다.

 

> ge<-gregexpr("\\d{1,2}",txt,perl=TRUE)
> ge
[[1]]
[1] 1 3 6 8 10 12 15 18 20
attr(,"match.length")
[1] 1 2 2 1 2 2 2 2 1
attr(,"useBytes")
[1] TRUE> r_index<-ge[[1]]
> r_long<-attr(r_index,"match.length")
> substr(txt,r_index[1],r_index[1]+r_long[1]-1)
[1] "0"
> substr(txt,r_index[2],r_index[2]+r_long[2]-1)
[1] "01"
> substr(txt,r_index[3],r_index[3]+r_long[3]-1)
[1] "01"

> substr(txt,r_index[4],r_index[4]+r_long[4]-1)
[1] "2"
> substr(txt,r_index[5],r_index[5]+r_long[5]-1)
[1] "01"
> substr(txt,r_index[6],r_index[6]+r_long[6]-1)
[1] "23"

\d{1,2}은 직전패턴이 1번 또는 2번 연속해서 만족하는 경우를 처음부터 순서대로 matching 시킵니다. 이 경우 매우 여러번 만족합니다. 만족 하는 곳을 하이라이트 처리하면 "0 01 012 0123 01k234" 입니다.

눈여겨 볼 것은 "012"의 경우 \d{1,2}를 "01"이 만족한 이후 "0123"으로 곧장 넘어가지 않고 그 다음 공백없이 출현하는 "2"에 대해서도 matching 을 한 것을 볼 수 있지요.

 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 초급 R 강의 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 511912
50 초급 [BigData - R강의 초급] 정규표현식 regular expression 4강 (1) – Anchors "^", "$" 2 DataMarket2 2014.05.23 101681
49 초급 [BigData - R강의 초급] 정규표현식 regular expression 3강 – alternation "|" DataMarket2 2014.05.23 96708
48 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(4) – 게으른 수량자 "+?", "*?", "{n,}?" 1 DataMarket2 2014.05.23 110274
47 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(3) – 수량자 "?" 1 DataMarket2 2014.05.23 109653
» 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(2) – 수량자 {} 1 DataMarket2 2014.05.23 104349
45 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(1) – 수량자 “+”, “*” DataMarket2 2014.05.23 107124
44 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(4) – 문자열 형태표현 ".", "\W", "\D", "\S" DataMarket2 2014.05.23 94863
43 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(3) – 문자열 형태표현 "\p{Hangul}"(한글), 특수문자 2 DataMarket2 2014.05.23 102199
42 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(2) – 문자열 형태표현 “\d”, “\s” DataMarket2 2014.05.23 93638
41 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(1) – 문자열 형태표현 ".", "\w" 3 DataMarket2 2014.05.23 113696
40 초급 [BigData - R강의 초급] 따옴표를 문자열로 인식시키려면? - escaper \ DataMarket2 2014.05.23 69631
39 초급 [BigData - R강의 초급] 문자열 패턴 regular expression 연습 DataMarket2 2014.05.23 70278
38 초급 [BigData - R강의 초급] 문자열 검색 – grep, regexpr, gregexpr DataMarket2 2014.05.23 100681
37 초급 [BigData - R강의 초급] 문자열 찾아바꾸기 – sub, gsub 1 DataMarket2 2014.05.23 90892
36 초급 [BigData - R강의 초급] 문자열 나누기 – strsplit, str_split DataMarket2 2014.05.23 105944
35 초급 [BigData - R강의 초급] 문자열 일부 추출 – substr(), str_sub() 비교 2 DataMarket2 2014.05.23 102211
34 초급 [BigData - R강의 초급] 문자열 포멧 출력 – sprintf 함수 1 DataMarket2 2014.05.23 59763
33 초급 [BigData - R강의 초급] 문자열 길이 – nchar 함수 1 DataMarket2 2014.05.23 57837
32 초급 [BigData - R강의 초급] 문자열 이어붙이기 - paste, paste0 함수 1 DataMarket2 2014.05.23 69632
31 초급 [BigData - R강의 초급] 결측치 처리 함수 - complete.cases DataMarket2 2014.05.23 50920
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