【问题标题】:Inserting space at specific location in a string在字符串的特定位置插入空格
【发布时间】:2021-09-25 08:42:30
【问题描述】:

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

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

[1] "306 1660217"

【问题讨论】:

  • 我认为你可以做类似sub("^(.{3})", "\\1 ", Test)的事情。

标签: r string tidyverse stringr stringi


【解决方案1】:

使用基本的regexstringr

library(stringr)
str_replace(Test, pattern = "(.{3})(.*)", replacement = "\\1 \\2")

输出:

"306 1660217"

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

gsub(Test, pattern = "(.{3})(.*)", replacement = "\\1 \\2")

解释

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

【讨论】:

    猜你喜欢
    • 2012-12-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    相关资源
    最近更新 更多