Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 试图用“替换模式匹配”&引用;使用gsub_R_Gsub - Fatal编程技术网

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% "]", "")