【发布时间】:2021-03-24 07:26:13
【问题描述】:
如何将英文单词拆分成字符,但保持连字符不变(例如“ch”、“th”、“gh”)?
例如,对于字符串“that”,我想将其拆分为“th”、“a”、“t”,而不是“t”、“h”、“a”、“t”。
【问题讨论】:
如何将英文单词拆分成字符,但保持连字符不变(例如“ch”、“th”、“gh”)?
例如,对于字符串“that”,我想将其拆分为“th”、“a”、“t”,而不是“t”、“h”、“a”、“t”。
【问题讨论】:
这是一个函数f,可能有助于拆分
dg <- c("ch", "th", "gh", "ai")
v <- c("thanks", "chain", "banana", "that", "rain")
f <- Vectorize(function(s) {
res <- c()
while (nchar(s)) {
k <- ifelse(substr(s, 1, 2) %in% dg, 2, 1)
res <- c(res, substr(s, 1, k))
s <- substr(s, k + 1, nchar(s))
}
res
})
你会看到
> f(v)
$thanks
[1] "th" "a" "n" "k" "s"
$chain
[1] "ch" "ai" "n"
$banana
[1] "b" "a" "n" "a" "n" "a"
$that
[1] "th" "a" "t"
$rain
[1] "r" "ai" "n"
【讨论】:
strsplit("that", split = "(?<=t(?!h)|th|a)", perl = TRUE)
【讨论】: