R 试图用“替换模式匹配”&引用;使用gsub
下面是一个字符串:R 试图用“替换模式匹配”&引用;使用gsub,r,gsub,R,Gsub,下面是一个字符串: x <- "[CAD]-Other" 我试过: gsub("^\\[[^\\]]*\\]$", "", x) [1] "[CAD]-Other" 我使用regex101检查我的regex是否正常,它似乎在该站点上运行: 如何替换字符串中方括号中包含的任何内容?我们可以匹配一个方括号(转义-\\[,因为它是元字符),后跟零个或多个非右方括号的字符([^]*),后跟右方括号(\\]),替换为空白()) 对于本例,即使sub也足够了 sub("\\[[^]]*\\]",
x <- "[CAD]-Other"
我试过:
gsub("^\\[[^\\]]*\\]$", "", x)
[1] "[CAD]-Other"
我使用regex101检查我的regex是否正常,它似乎在该站点上运行:
如何替换字符串中方括号中包含的任何内容?我们可以匹配一个方括号(转义-
\\[
,因为它是元字符),后跟零个或多个非右方括号的字符([^]*
),后跟右方括号(\\]
),替换为空白()
)
对于本例,即使sub
也足够了
sub("\\[[^]]*\\]", "", x)
#[1] "-Other"
库(rebus)
图书馆(stringr)
谢谢。为了我的理智,双括号在做什么[^]]
(刚刚看到您的编辑!很快就会删除此评论,谢谢!)@DougFir方括号内的字符与任何非(^
)a]
@DougFir正则表达式解析为\[/code>(文字左括号)[^]*
(任何非右括号的字符)\]
(字面右括号)有趣的是,我不必用hat^在否定中转义右括号,所以不必[^\\]]*
这个特殊情况似乎可以由sub('.-','-',x)
gsub("\\[[^]]*\\]", "", x)
#[1] "-Other"
sub("\\[[^]]*\\]", "", x)
#[1] "-Other"
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% "]", "")