在字符串中的特定位置插入空格

MYa*_*208 2 string r stringr stringi tidyverse

我想在字符串中的三个字符后添加空格。我使用了以下代码,效果很好。我想知道是否还有其他简单的方法来完成相同的任务

library(stringi)
Test <- "3061660217"
paste(
    stri_sub(str = Test, from = 1, to = 3)
  , stri_sub(str = Test, from = 4)
  , sep = " "
  )

[1] "306 1660217"
Run Code Online (Sandbox Code Playgroud)

bir*_*ird 5

使用基本的regexstringr

library(stringr)
str_replace(Test, pattern = "(.{3})(.*)", replacement = "\\1 \\2")
Run Code Online (Sandbox Code Playgroud)

输出:

"306 1660217"
Run Code Online (Sandbox Code Playgroud)

R同样的方法也适用于基础:

gsub(Test, pattern = "(.{3})(.*)", replacement = "\\1 \\2")
Run Code Online (Sandbox Code Playgroud)

解释

  1. (.{3})- 找到任意3个字符
  2. (.*)- 查找任意字符0次或多次
  3. \\1- 反向引用(.{3})
  4. \\2- 反向引用(.*)
  5. \\1和之间的空格\\2是您要添加的空格