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

Jul*_*rre 12 regex r

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

实际上,我检查字符串是否以空格结尾,grepl然后我paste在末尾有一个空格.

append_space <- function(x) {
  if(!grepl("(\\s)$", x))
    x <- paste0(x, " ")
  return(x)
}
Run Code Online (Sandbox Code Playgroud)

但是,我认为我可以直接使用该sub功能,使用负面前瞻,!但我不知道如何使用它.

有谁知道我怎么做sub

Wik*_*żew 13

您可以sub在替换部分中使用捕获组和反向引用:

sub("(\\S)$", "\\1 ", x)
Run Code Online (Sandbox Code Playgroud)

\S手段non-whitespace.

演示


akr*_*run 11

你也可以试试

 sub(' ?$', ' ', x)
 #[1] "blabla1 " "blabla2 "
Run Code Online (Sandbox Code Playgroud)

哪里

 x <- c("blabla1 ", "blabla2")
Run Code Online (Sandbox Code Playgroud)


Tyl*_*ker 5

我认为这种方法可行:

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

sub("(?<=([^ ])$)$", " ", x, perl=TRUE)
## [1] "blabla1 " "blabla2 "
Run Code Online (Sandbox Code Playgroud)