首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为括号内用逗号分隔的字符添加引号?

如何为括号内用逗号分隔的字符添加引号?
EN

Stack Overflow用户
提问于 2021-11-24 22:29:37
回答 2查看 114关注 0票数 2

这样做的目的是为字符串列表表示中的所有字符串添加引号。

下一次尝试:

代码语言:javascript
复制
input_text <- "[innovation manager, manager director, senior manager]"

scan(text=input_text, what="")

返回:

代码语言:javascript
复制
'[innovation" "manager,"    "manager"     "director,"   "senior"      "manager]'

预期产出可能如下所示:

代码语言:javascript
复制
'["innovation manager", "manager director", "senior manager"]'

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-24 22:35:59

一种方法--用gsub删除方括号,在, (strsplit)处拆分,提取list元素,插入双引号(dQuote),并将拆分的元素放在一起

代码语言:javascript
复制
sprintf('[%s]', paste(dQuote(strsplit(gsub("[][]", "", input_text), 
        ",\\s*")[[1]], FALSE), collapse=", "))

-output

代码语言:javascript
复制
[1] "[\"innovation manager\", \"manager director\", \"senior manager\"]"
票数 3
EN

Stack Overflow用户

发布于 2021-11-24 22:35:51

可能的解决办法;

代码语言:javascript
复制
library(tidyverse)

input_text <- "[innovation manager, manager director, senior manager]"

input_text %>% 
  str_remove_all("\\[|\\]") %>% 
  str_split(", ") %>% unlist

#> [1] "innovation manager" "manager director"   "senior manager"

但是,如果OP希望将结果作为单个字符串,则可以使用以下方法:

代码语言:javascript
复制
input_text %>% 
  str_remove_all("\\[|\\]") %>% 
  str_split(", ") %>%
  map(~ str_c('"',.x, '"')) %>% unlist %>% 
  str_flatten(collapse = ", ") %>% 
  str_c("[",.,"]")

#> [1] "[\"innovation manager\", \"manager director\", \"senior manager\"]"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70103699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档