2017-02-01 2 views
1

모든 구두점과 "제외"단어를 ""을 제외하고 바꾸려고합니다. 및 "-"문자열에 있지만 정규식을 설정하는 올바른 조합을 찾기 위해 고군분투.마침표와 대시를 제외한 R str_replace_all

R에서 다음 str_replace_all() 코드를 사용했지만 이제는 "."을 무시하도록 지정하려고합니다. 및 "-". 나는 [^ .-]와 ([.-]) 같은 것들을 포함하도록 설정하려고했지만, 원하는 출력을 얻지 못하고있다.

str_replace_all("[APPLE/O.ORANGE*PLUM-11]", regex("[\\W+,[:punct:]]", perl=T)," ") 

" APPLE O ORANGE PLUM 11 " #current output 

" APPLE O.ORANGE PLUM-11 " #desired output 

모든 의견을 크게 기뻐할 것입니다. 감사!

+1

오류 : "str_replace_all"기능을 찾을 수 없습니다. 비 기본 R 함수에 대해 질문 할 때 사용할 패키지를 지정해야합니다. –

답변

8

^를 사용하는 것이 더 쉽습니다. 즉, 대괄호 내에서 참조되지 않은 모든 항목과 일치합니다. 상자에 모든 문자, 숫자,. 및 -를 포함하면 해당 문자를 바꿀 수 없습니다.

str_replace_all는 PCRE 패턴을 사용 허용하지 않습니다
library(stringr) 
str_replace_all("[APPLE/O.ORANGE*PLUM-11]", "[^a-zA-Z0-9.-]"," ") 
+0

완벽한, 감사합니다! – SC2

0

참고는 stringr library는 ICU 정규식 전원이 공급됩니다. 당신이해야 할 일은

는 다음과 같은 패턴을 사용하여 기본 R gsub 수행 할 수 있습니다 :

> x<-"[APPLE/O.ORANGE*PLUM-11]" 
> gsub("[^\\w.-]", " ", x, perl=TRUE) 
[1] " APPLE O.ORANGE PLUM-11 " 

R demo online를 참조하십시오. 또한 regex online demo here을 참조하십시오.

[^\\w.-] 패턴 이외의 문자와 일치 단어 문자 (문자, 숫자, _), .- ([^...]는 부정 문자 클래스이기 때문에)은.