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

use*_*745 1 r stringr tidyverse

我们如何使 stringr 函数(例如str_replace)将参数视为字符串文字而不是正则表达式,而无需手动转义特殊字符?

例子

转义特殊字符按预期工作

"dsfj?lddkfj" %>% str_replace("\\?ld", "AAA")
[1] "dsfjAAAdkfj"
Run Code Online (Sandbox Code Playgroud)

但如果我们不转义特殊字符,stringr函数会将 视为pattern正则表达式。在这种情况下我们会得到一个错误。

"dsfj?lddkfj" %>% str_replace("?ld", "AAA")
Run Code Online (Sandbox Code Playgroud)

问题

是否有一些标准方法可以强制 stringr 函数将模式视为字符串文字(无需手动转义特殊字符)?

笔记

我可以看到perl = T用于该功能的选项sub()

Ron*_*hah 5

将图案包裹起来fixed()

library(stringr)

"dsfj?lddkfj" %>% str_replace(fixed("?ld"), "AAA")
#[1] "dsfjAAAdkfj"
Run Code Online (Sandbox Code Playgroud)