Regex 如何用字符串本身替换包含字符串的变量?

Regex 如何用字符串本身替换包含字符串的变量?,regex,r,Regex,R,我有一个值很多的变量,其中一个值类似于'blambo BSM258 Clem on/o',我想用'BSM'替换它。 换句话说,我想用“BSM”替换包含“BSM”的变量的每个值 我试过使用 sub("(BSM)", "BSM", data$variable) 或 data$variable[grep(“(BSM)”,data$variable)]为什么不简单地: gsub('BSM', '"BSM"', 'Blamo BSM258 Clem on/o') 使用sub或gsub仅替换字符串中

我有一个值很多的变量,其中一个值类似于'blambo BSM258 Clem on/o',我想用'BSM'替换它。 换句话说,我想用“BSM”替换包含“BSM”的变量的每个值

我试过使用

  sub("(BSM)", "BSM", data$variable)

data$variable[grep(“(BSM)”,data$variable)]为什么不简单地:

gsub('BSM', '"BSM"', 'Blamo BSM258 Clem on/o')

使用sub或gsub仅替换字符串中的模式,因此您只是将“BSM”替换为“BSM”,而不是整个字符串。但是第二个例子,使用
grep
应该可以。如果要在字符串中查找“BSM”,则在grep命令中不需要在其周围加括号,只需传递
data$variable[grep(“BSM”,data$variable)]它是一个数据帧,但该变量是根据因子读取的。。。我不知道如何预防它。这是我的警告信息:
[这真的有效吗?我的输出是
“blambo\”BSM\“258 Clem on/o”
,这是带有转义引号的原始字符串。我还从您的问题中得到了“blambo\”BSM\“258 Clem on/o”,这确实是您想要的,插入“about BSM”(注意RGui上的显示引入/)我只是想用BSM替换Blamo BSM258 Clem on/o。即使使用NAs,您的第二次尝试似乎对我也很有效。您能提供一些失败的示例数据吗?
gsub('BSM', '"BSM"', 'Blamo BSM258 Clem on/o')