我们说我有一个字符串
"ABCDEFGHI56dfsdfd"
Run Code Online (Sandbox Code Playgroud)
我想要做的是一次在多个位置插入一个空格字符.
例如.我想在随机选择的两个位置插入空格字符,比如4和8.
所以输出应该是
"ABCD EFGH I56dfsdfd"
Run Code Online (Sandbox Code Playgroud)
这样做最有效的方法是什么?鉴于字符串中可以包含任何类型的字符(不仅仅是字母表).
这是基于正则表达式的解决方案:
vec <- "ABCDEFGHI56dfsdfd"
# sample two random positions
pos <- sample(nchar(vec), 2)
# [1] 6 4
# generate regex pattern
pat <- paste0("(?=.{", nchar(vec) - pos, "}$)", collapse = "|")
# [1] "(?=.{11}$)|(?=.{13}$)"
# insert spaces at (after) positions
gsub(pat, " ", vec, perl = TRUE)
# [1] "ABCD EF GHI56dfsdfd"
Run Code Online (Sandbox Code Playgroud)
这种方法基于积极的前瞻,例如(?=.{11}$)
.在此示例中,在字符串($
)结尾之前以11个字符插入空格.
归档时间: |
|
查看次数: |
585 次 |
最近记录: |