Я пытаюсь использовать пакет stringi
для разделения на разделитель (возможно, разделитель повторяется), но сохраняйте разделитель. Это похоже на этот вопрос, который я задал луны назад: R разделить на разделитель (разделение) сохранить разделитель (разделение), но разделитель можно повторить. Я не думаю, что base strsplit
может обрабатывать этот тип регулярных выражений. Пакет stringi
может, но я не могу понять, как форматировать регулярное выражение, оно разбивается на разделитель, если есть повторы, а также не оставлять пустую строку в конце строки.
Решения Base R, stringr, stringi и т.д. все приветствуются.
Более поздняя проблема возникает из-за того, что я использую жадный *
на \\s
, но пространство не является обязательным, поэтому я мог только подумать, чтобы он его оставил:
MWE
text.var <- c("I want to split here.But also||Why?",
"See! Split at end but no empty.",
"a third string. It has two sentences"
)
library(stringi)
stri_split_regex(text.var, "(?<=([?.!|]{1,10}))\\s*")
# Результат
## [[1]]
## [1] "I want to split here." "But also|" "|" "Why?"
## [5] ""
##
## [[2]]
## [1] "See!" "Split at end but no empty." ""
##
## [[3]]
## [1] "a third string." "It has two sentences"
# Желаемый результат
## [[1]]
## [1] "I want to split here." "But also||" "Why?"
##
## [[2]]
## [1] "See!" "Split at end but no empty."
##
## [[3]]
## [1] "a third string." "It has two sentences"