使用 gsub/regex 在字符串内的名称周围放置引号

Posted

技术标签:

【中文标题】使用 gsub/regex 在字符串内的名称周围放置引号【英文标题】:Using gsub/regex to place quotes around names inside string 【发布时间】:2017-07-29 18:45:50 【问题描述】:

我尝试过搜索,但找不到我想要做的确切事情。如果我忽略了它,我深表歉意。我正在尝试获取一个长字符串向量,它们都具有相同的一般结构,并将它们放入 data.frame 中。结构如下:

[1]   "rank, team, record"
[2]   "1 Team 22-4"
[3]   "2 Long Team Name 20-6"

我最初的想法是使用 gsub 和正则表达式将 /" 放在团队名称周围(例如 /"Long Team Name/"),然后使用 read.table 导入,但我遇到了困难正则表达式来执行此操作。这将允许我将字符串读取为制表符分隔的字符串,对吗?如果有更简单的建议,我全神贯注。

谢谢! 布赖恩

【问题讨论】:

你能详细说明你想做的事情吗?如果您已将数据作为向量读入,听起来您只需将向量包装在data.frame() 使用sub 将第一个空格和最后一个空格替换为某个特殊字符(例如"|"),然后在该特殊字符上使用strsplittidyr::separate 【参考方案1】:

我想这就是你想要的?

library(stringi)

x = c("rank, team, record", "1 Team 22-4", "2 Long Team Name 20-6")

res = stri_replace_first_fixed(x, " ", "|")
res = stri_replace_last_fixed(res, " ", "|")

res = stri_split_fixed(res, pattern = "|", simplify = T)
#      [,1]    [,2]             [,3]    
# [1,] "rank," "team,"          "record"
# [2,] "1"     "Team"           "22-4"  
# [3,] "2"     "Long Team Name" "20-6"  

结果是一个矩阵,但您可以将其包装在 as.data.frame 中。

【讨论】:

是的,这正是我所需要的。非常感谢!

以上是关于使用 gsub/regex 在字符串内的名称周围放置引号的主要内容,如果未能解决你的问题,请参考以下文章

opencv代码没有检测到人脸的数量也没有在人脸周围放一个圆圈

如何在画布内的文本周围绘制矩形

SQL 语句不会在字段名称周围没有“`”的情况下运行

手机位置周围 GPS 半径内的位置

JDBC 似乎在我的数字周围加上了单引号

命令(批处理)文件 - 在目录名称周围使用引号