【发布时间】:2016-11-24 08:24:43
【问题描述】:
我有像 'aa;a' 'aa;' 这样的字符串我需要删除';' (或任何其他标点符号)仅当字符串以它结尾时。如果它以它开头或包含在中间,我不想删除它。
下面的行导致';'被删除
gsub("(^.*)[[:punct:]]","",'a;a')
【问题讨论】:
-
只是为了清除一些东西,
a;a;的结果将是aa但a;a的结果将是a;a?
我有像 'aa;a' 'aa;' 这样的字符串我需要删除';' (或任何其他标点符号)仅当字符串以它结尾时。如果它以它开头或包含在中间,我不想删除它。
下面的行导致';'被删除
gsub("(^.*)[[:punct:]]","",'a;a')
【问题讨论】:
a;a; 的结果将是 aa 但a;a 的结果将是 a;a?
我们可以在[[:punct:]]之后指定元字符$来表示字符串的结尾,这样它就可以匹配字符串末尾的标点符号并替换为空白("")
sub("[[:punct:]]$","",c('a;a', 'aa;'))
#[1] "a;a" "aa"
请注意,sub 仅用于匹配和替换单个实例,而不是 gsub(全局替换)。
【讨论】: