2016-11-24 67 views
2

我有'aa; a''aa'字符串;'我需要刪除';' (或任何其他標點符號),只有當字符串以它結尾時。如果它以它開頭或中間包含它,我不想刪除它。R:僅在字符串末尾的gsub標點符號

下面一行導致刪除';'

gsub("(^.*)[[:punct:]]","",'a;a') 
+0

只是爲了清楚的事情,'a; a;'的結果是'aa',但'a; a'的結果是'a; a'? –

回答

4

我們可以[[:punct:]]後指定的元字符$來表示字符串的結束,因此在字符串的結尾標點匹配,並與空白(""

sub("[[:punct:]]$","",c('a;a', 'aa;')) 
#[1] "a;a" "aa" 

更換請注意,代替gsub(全局替換),sub僅用於匹配和替換單個實例。