У меня есть и уродливый и сложный набор строк, которые мне нужно разделить:
vec <- c("'01'", "'01' '02'",
"#bateau", "#bateau #batiment",
"#'autres 32'", "#'autres 32' #'batiment 30'", "#'autres 32' #'batiment 30' #'contenu 31'",
"#'34'", "#'34' #'33' #'35'")
vec
[1] "'01'" "'01' '02'"
[3] "#bateau" "#bateau #batiment"
[5] "#'autres 32'" "#'autres 32' #'batiment 30'"
[7] "#'autres 32' #'batiment 30' #'contenu 31'" "#'34'"
[9] "#'34' #'33' #'35'"
Мне нужно разделить строку везде, где есть пробел (
), за исключением случаев, когда пробел находится между '
. Таким образом, в приведенном выше примере '01' '02'
станет '01'
и '02'
, а #'autres 32' #'batiment 30'
станет #'autres 32'
и #'batiment 30'
.
Я пытался получить вдохновение от этого вопроса , но далеко не ушел:
strsplit(vec, "(\\s[^']+?)('.*?'|$)")
, так как это решение разделило некоторые пробелы, что не должно, и заставило меня потерять некоторую информацию.
Результат от разделения должно быть что-то вроде:
res <- c("'01'", "'01'", "'02'",
"#bateau", "#bateau", "#batiment",
"#'autres 32'", "#'autres 32'", "#'batiment 30'", "#'autres 32'", "#'batiment 30'", "#'contenu 31'",
"#'34'", "#'34'", "#'33'", "#'35'")
Каким будет правильное регулярное выражение для разбиения этой строки?
Спасибо