2016-08-16 109 views
0

我試圖用gsub用一個不同的單詞替換字符串中的單詞(包含在單引號中,即以單引號開頭和結尾),存儲在一個變量中。我想保留單引號。R gsub字符串以字首開頭,前綴無需刪除前綴

所以,如果我開始與此:

a <- "I am going to buy an 'apple' and a 'apple'" 
repl <- "pear" 

我想它最終成爲:

"I am going to buy an 'pear' and a 'pear'" 

我已經試過這樣下面的幾件事情,但它永遠只能似乎替換'蘋果'和單引號,而我想保留單引號。

a2 <- gsub("\'apple\'", repl, a) 

回答

2

您可以使用?<=看後面?=看在Perl-compatible regexps提前語法從?gsub,在這種情況下,單引號將只是像邊界,但不會被取代:

gsub("(?<=\')apple(?=\')", repl, a, perl = T) 
# [1] "I am going to buy an 'pear' and a 'pear'" 
1

使用gsubfn

library(gsubfn) 
gsubfn("'([^']+)'", paste0("'", repl, "'"), a) 
#[1] "I am going to buy an 'pear' and a 'pear'"