【问题标题】:gsub unable to remove empty brackets in Rgsub无法删除R中的空括号
【发布时间】:2021-10-05 23:43:36
【问题描述】:

我在 R 中有以下字符串

A<-"A (23) 56 hh()"

我想得到以下输出

"A (23) 56 hh"

我尝试了以下代码

B<-gsub(pattern = "()", replacement = "", x = A)

这并没有产生预期的结果。我怎样才能做到这一点

【问题讨论】:

标签: r regex gsub


【解决方案1】:

gsub 中尝试fixed = TRUE

> gsub("()", "", A, fixed = TRUE)
[1] "A (23) 56 hh"

【讨论】:

    【解决方案2】:

    使用str_remove

    library(stringr)
    str_remove_all(A, fixed("()"))
    

    -输出

    [1] "A (23) 56 hh"
    

    【讨论】:

    • 你好阿克伦大师。需要你的帮助。我怎么能正则表达式 (, 1, 0, )10
    • 试试gsub("\\D+", "", str1)# [1] "10"
    【解决方案3】:

    试试B&lt;-gsub(pattern = "\\(\\)", replacement = "", x = A)

    \\ 表示它是一个特定的字符——而不是括号中的正则表达式

    【讨论】:

      【解决方案4】:

      dy_by 和 ThomasIsCoding 有很好的答案。这是dy_by的答案的修改

      gsub(pattern = "\\()", replacement = "", x = A)
      
      [1] "A (23) 56 hh"
      

      【讨论】:

        【解决方案5】:

        另一个定义删除两个连续括号字符的选项,这消除了对 fixed=TRUE 的需要:

        library(stringr)
        
        A %>% str_remove("[()]{2}")
        
        [1] "A (23) 56 hh"
        

        【讨论】:

          猜你喜欢
          • 2019-05-22
          • 1970-01-01
          • 2022-01-21
          • 2017-03-25
          • 1970-01-01
          • 2017-06-19
          • 2021-05-13
          • 2013-11-09
          • 1970-01-01
          相关资源
          最近更新 更多