如何用 stringr 中的 str_replace 替换插入符号

How to replace a caret with str_replace from stringr

我遇到代码问题需要帮助(不包括特定字符串)。

我发现 str_replace_all 可以执行 job.However,它适用于其他

像“/n”、“/t”或"A"、"B"、"C"这样的字符,除了“^”,我想排除

这个标志但是得到一个错误信息

(Error in stri_replace_all_regex(string, pattern, fix_replacement(replacement), : Missing closing bracket on a bracket expression.(U_REGEX_MISSING_CLOSE_BRACKET))

感谢您的帮助!

code=c("^GSPC","^FTSE","000001.SS","^HSI","^FCHI","^KS11","^TWII","^GDAXI","^STI")
str_replace_all(code, "([^])", "")


一个选项是用 fixed 包装,应该没问题

library(stringr)
str_replace_all(code, fixed("^"), "")
#[1] "GSPC"      "FTSE"      "000001.SS" "HSI"       "FCHI"      "KS11"      "TWII"      "GDAXI"     "STI"  

此外,由于我们要替换为空白 (""),所以选项是 str_remove

str_remove(code, fixed("^"))

关于为什么OP的代码没有,在方括号内,如果我们使用^,它不是读取文字字符,而是其中的元字符查找除和之外的字符这里是空白 ([^])