确定字符串是否以空格结尾,如果不是则附加空格

时间:2015-05-06 14:24:41

标签: regex r

我想检查字符串是否以空格结尾。如果不是,我想在字符串的末尾添加一个尾随空格字符。

实际上,我检查字符串是否以grepl的空格结尾,然后我paste结尾处的空格。

append_space <- function(x) {
  if(!grepl("(\\s)$", x))
    x <- paste0(x, " ")
  return(x)
}

但是,我认为我可以使用sub函数直接执行此操作,使用!使用负面预测,但我不知道如何使用它。

有人知道如何使用sub吗?

4 个答案:

答案 0 :(得分:13)

您可以将sub与替换部分中的捕获组和反向引用一起使用:

sub("(\\S)$", "\\1 ", x)

\S表示non-whitespace

请参阅demo

答案 1 :(得分:11)

您也可以尝试

 sub(' ?$', ' ', x)
 #[1] "blabla1 " "blabla2 "

,其中

 x <- c("blabla1 ", "blabla2")

答案 2 :(得分:5)

我认为这种方法可行:

x <- c("blabla1 ","blabla2")

sub("(?<=([^ ])$)$", " ", x, perl=TRUE)
## [1] "blabla1 " "blabla2 "

答案 3 :(得分:4)

就像我在评论中所说,你可以试试:

sub("(.*[^ ])$","\\1 ", x)

示例

x <- c("blabla1 ","blabla2")
sub("(.[^ ])$","\\1 ", x)
#[1] "blabla1 " "blabla2 "