gpt4 book ai didi

r - str_replace(程序包纵梁)不能替换r中的括号?

转载 作者:行者123 更新时间:2023-12-04 13:16:30 25 4
gpt4 key购买 nike

我有一个绳子,说

 fruit <- "()goodapple"

我想删除字符串中的括号。我决定使用Stringr软件包,因为它通常可以处理此类问题。我用 :
str_replace(fruit,"()","")

但是什么也不会被替换,并且以下内容会被替换:
[1] "()good"

如果我只想更换右半括号,则可以使用:
str_replace(fruit,")","") 
[1] "(good"

但是,左半括号不起作用:
str_replace(fruit,"(","")

并显示以下错误:
Error in sub("(", "", "()good", fixed = FALSE, ignore.case = FALSE, perl = FALSE) : 
invalid regular expression '(', reason 'Missing ')''

有人知道为什么会这样吗?那么,如何删除字符串中的“()”呢?

最佳答案

转义括号就可以了...

str_replace(fruit,"\\(\\)","")
# [1] "goodapple"

您可能还需要考虑探索 "stringi" package,它与“stringr”类似,但功能更灵活。例如,存在 stri_replace_all_fixed,这在这里很有用,因为您的搜索字符串是固定模式,而不是正则表达式模式:
library(stringi)
stri_replace_all_fixed(fruit, "()", "")
# [1] "goodapple"

当然,基本的 gsub也可以很好地处理此问题:
gsub("()", "", fruit, fixed=TRUE)
# [1] "goodapple"

关于r - str_replace(程序包纵梁)不能替换r中的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23065378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com