2015-02-01 5 views

답변

8

사이의 모든 단어를 추출 할을 사용할 수 있습니다 gsub :

vec <- "PRODUCT colgate good but not goodOKAY" 

gsub(".*PRODUCT\\s*|OKAY.*", "", vec) 
# [1] "colgate good but not good" 
9
x = "PRODUCT colgate good but not goodOKAY" 
library(stringr) 
str_extract(string = x, pattern = perl("(?<=PRODUCT).*(?=OKAY)")) 

(?<=PRODUCT) - 다음 내용의 내용은 PRODUCT

.*은 줄 바꾸기를 제외한 모든 항목과 일치합니다.

(?=OKAY) - 앞으로 OKAY과 일치하도록주의하십시오.

기본 기능 subgsub이 정상적으로 작동하려면이 패키지에 stingr 패키지가 필요하지 않습니다. 구문의 일관성을 위해 stringr을 사용합니다. 함수 이름을 추출, 바꾸기, 검색하는 등의 작업을 예측 가능하고 이해할 수 있으며 인수는 일관된 순서입니다. 나는 stringr을 사용하기 때문에 매번 문서화가 필요하지 않습니다.

13

이는 sub으로 수행 할 수 있습니다

s <- "PRODUCT colgate good but not goodOKAY" 
sub(".*PRODUCT *(.*?) *OKAY.*", "\\1", s) 

주는 :

[1] "colgate good but not good" 

어떤 패키지가 필요하지 않습니다.

.*PRODUCT *(.*?) *OKAY.* 

Regular expression visualization

Debuggex Demo

5

당신은 qdapRegex 패키지에서 rm_between 기능을 사용할 수 있습니다 여기에

는 정규 표현식의 시각화입니다. 다음과 같이 문자열과 왼쪽 및 오른쪽 경계를 사용합니다.

x <- "PRODUCT colgate good but not goodOKAY" 

library(qdapRegex) 
rm_between(x, "PRODUCT", "OKAY", extract=TRUE) 

## [[1]] 
## [1] "colgate good but not good"