我有一组复杂且难以理解的字符串需要拆分:
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'")
应该使用什么正则表达式来拆分这个字符串?
谢谢