如何让str_replace(和其他stringr)函数忽略正则表达式(按字面意思处理字符串)?
我们如何让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") 奎斯顿 是否有一
"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"