尝试使用gsub替换模式匹配“”

时间:2017-06-28 08:03:54

标签: r gsub

这是一个字符串:

x <- "[CAD]-Other"

我想摆脱方括号内的任何东西,以便

>x
"-Other"

我试过了:

gsub("^\\[[^\\]]*\\]$", "", x)
[1] "[CAD]-Other"

我使用regex101来检查我的正则表达式,它确实可以在该网站上运行: https://regex101.com/r/Xl77pO/1

如何替换字符串中方括号内的任何内容?

2 个答案:

答案 0 :(得分:1)

library(rebus)
library(stringr)

x <- "[CAD]-Other"

str_replace(x, pattern = START %R% "\\[" %R% one_or_more(WRD) %R% "]", "")
str_replace(x, pattern = "\\[" %R% one_or_more(WRD) %R% "]", "")

答案 1 :(得分:0)

我们可以匹配一个方括号(转义 - \\[,因为它是元字符),后跟零个或多个不是右方括号([^]]*)的字符,后跟一个右方括号( \\]),替换为空白(""

gsub("\\[[^]]*\\]", "", x)
#[1] "-Other"

对于此示例,即使sub也足够了

sub("\\[[^]]*\\]", "", x)
#[1] "-Other"