如何让str_replace(和其他stringr)函数忽略正则表达式(按字面意思处理字符串)?

如何让str_replace(和其他stringr)函数忽略正则表达式(按字面意思处理字符串)?,r,tidyverse,stringr,R,Tidyverse,Stringr,我们如何让str_replace等stringr函数将参数作为字符串文本而不是正则表达式来处理,而不用手动转义特殊字符 实例 转义特殊字符按预期工作 "dsfj?lddkfj" %>% str_replace("\\?ld", "AAA") [1] "dsfjAAAdkfj" 但是如果我们不转义特殊字符,stringr函数会将模式视为正则表达式。在这种情况下,我们得到一个错误 "dsfj?lddkfj" %>% str_replace("?ld", "AAA") 奎斯顿 是否有一

我们如何让str_replace等stringr函数将参数作为字符串文本而不是正则表达式来处理,而不用手动转义特殊字符

实例 转义特殊字符按预期工作

"dsfj?lddkfj" %>% str_replace("\\?ld", "AAA")
[1] "dsfjAAAdkfj"
但是如果我们不转义特殊字符,stringr函数会将模式视为正则表达式。在这种情况下,我们得到一个错误

"dsfj?lddkfj" %>% str_replace("?ld", "AAA")
奎斯顿 是否有一些标准方法可以强制stringr函数将模式视为字符串文本而不手动转义特殊字符

笔记 我可以看到perl=T是一个

用固定格式包装模式

我们可以在R中使用sub-base

library(stringr)

"dsfj?lddkfj" %>% str_replace(fixed("?ld"), "AAA")
#[1] "dsfjAAAdkfj"
sub("?ld", "AAA", "dsfj?lddkfj", fixed = TRUE)
#[1] "dsfjAAAdkfj"