Pat*_*rin 5 regex string r strsplit
我需要一种方法来每 n 个字母分割一个字符串。
例如令s="QW%ERT%ZU%I%O%P"和n=3,我想获得"QW%E" "RT%Z" "U%I%O" "%P"。
如您所见,除法中不考虑特殊字符“%”。
我尝试过
strsplit(s, "(?<=.{10})(?=.*\\%)", perl = TRUE)[[1]]
Run Code Online (Sandbox Code Playgroud)
但我找不到办法获得我想要的东西。
regmatches像下面这样的(而不是strsplit)怎么样?
> n <- 3
> regmatches(s, gregexpr(sprintf("(\\W?\\w){1,%i}", n), s))
[[1]]
[1] "QW%E" "RT%Z" "U%I%O" "%P"
Run Code Online (Sandbox Code Playgroud)
或tapply+strsplit
v <- unlist(strsplit(s, ""))
l <- which(grepl("\\w", v))
tapply(
v,
cumsum(seq_along(v) %in% (1 + by(l, ceiling(seq_along(l) / n), max))),
paste0,
collapse = ""
)
Run Code Online (Sandbox Code Playgroud)
这使
0 1 2 3
"QW%E" "RT%Z" "U%I%O" "%P"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |