2011-10-02 5 views
7

자료가 있습니다 : txt = "마이크로 전자 패턴 내의 패턴 층". 나는 용어 ​​정확히 "형식"에 의해 "패턴"을 대체하고자, 나는 코드를 작성하려고 :gsub()을 사용하여 정확하게 문자열을 대체하는 방법

txt_replaced = gsub("pattern","form",txt) 

그러나 txt_replaced에서 responsed 코퍼스는 다음과 같습니다 마이크로 전자 형태에서 "성형 층. "

"패턴"의 특성 부분이 "패턴"과 일치하기 때문에 "패턴 된"이라는 용어는 잘못 형성된 것으로 대체됩니다.

gsub()를 사용하여 문자열을 바꿀 수 있다면 쿼리하고 싶습니다. 즉 정확히 일치하는 단어 만 바꿔야합니다.

내가 갈증을 느낀 이유는 다음과 같습니다. "마이크로 전자 형식의 패터닝 된 층"

감사합니다.

+3

이 질문을 찾으십시오 : http://stackoverflow.com/questions/6528258/help-with-complete-word-matching-using-grepl-in-r – kohske

답변

21

@koshke가 지적했듯이 매우 비슷한 질문이 (저의) 전에 대답되었습니다. ...하지만 그게 grep이고 이것은 gsub입니다. 다시 대답하겠습니다 :

"\ <"은 단어의 시작에 대한 이스케이프 시퀀스이고 ">"는 끝입니다. 당신이 \b 대신 \<\> 사용할 수

txt <- "a patterned layer within a microelectronic pattern." 
txt_replaced <- gsub("\\<pattern\\>","form",txt) 
txt_replaced 
# [1] "a patterned layer within a microelectronic form." 

을 또는 : R 문자열에서 그렇게, 백 슬래시를 두 배로해야합니다. 이>

txt_replaced <- gsub("\\bpattern\\b","form",txt) 

는 또한 단 하나 명의 발생을 교체하려는 경우, 당신은 sub 대신 gsub 사용해야 있습니다 양쪽에서 사용할 수 있도록 \b는 단어 경계와 일치합니다.

관련 문제