【发布时间】:2015-05-06 14:24:40
【问题描述】:
我想检查一个字符串是否以空格结尾。如果不是,我想在字符串末尾添加一个尾随空格字符。
实际上,我检查字符串是否以grepl 的空格结尾,然后我在末尾paste 一个空格。
append_space <- function(x) {
if(!grepl("(\\s)$", x))
x <- paste0(x, " ")
return(x)
}
但是,我认为我可以直接使用 sub 函数来执行此操作,使用 ! 进行负前瞻,但我不知道如何使用它。
有谁知道我可以用sub 做到这一点吗?
【问题讨论】:
-
无论字符串的结尾如何,您的函数似乎都会附加一个空格。
> sub("(.*[^\\s])", "\\1 ", "string") [1] "string " > sub("(.*[^\\s])", "\\1 ", "string ") [1] "string " > sub("(.*[^\\s])", "\\1 ", "string\n") [1] "string\n " -
那是因为我忘记了评论中的
$,我发布了一个答案,在测试我的正则表达式之后我确实放了一个$......实际上,你是对的,那里即使使用 $ 也是一个错误 :-(