R 用保留分隔符分隔字符串
我有一个数据场:R 用保留分隔符分隔字符串,r,regex,dataframe,R,Regex,Dataframe,我有一个数据场: ID Value 1 message "some text" 2 more messages "some more text" 我用以下方式分隔数据框中的一列: df <- df %>% separate(Value, c("message", "text"), ' "', remove = TRUE) 与此相反: ID message
ID Value
1 message "some text"
2 more messages "some more text"
我用以下方式分隔数据框中的一列:
df <- df %>%
separate(Value, c("message", "text"), ' "', remove = TRUE)
与此相反:
ID message text
1 message "some text"
2 more messages "some more text"
我怎么能保留那个分隔符?我也试过,但犯了同样的错误:
df %>%
tidyr::extract(col = "Value",
into = c("message", "text"),
regex = '^(.*?) "(.*?)$', remove = FALSE)
你可以用
separate(Value, c("message", "text"), '\\s+(?=")', remove = TRUE)
tidyr::extract(col = "Value",
into = c("message", "text"),
regex = '^([^"]*)\\s(".*)', remove = FALSE)
看
\s+(?=”
模式匹配一个或多个紧跟“
字符的空白
或者,通过提取
,您可以使用
separate(Value, c("message", "text"), '\\s+(?=")', remove = TRUE)
tidyr::extract(col = "Value",
into = c("message", "text"),
regex = '^([^"]*)\\s(".*)', remove = FALSE)
看。regex是指:
-字符串的开头^
-第1组(([^“]*)
):除消息
“
-空白\s
-第2组((“*)
):text
,然后尽可能多地添加除换行符以外的任何零个或多个字符“
'\\s+(?=”)
和分离(
或'^([^”]*)\\s(“.*)”
和提取(
重新打开,因为它不处理当前问题,它只对OP已经使用的代码有帮助。