Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/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
Regex 如何在Perl中从字符串中去掉方括号_Regex_Perl - Fatal编程技术网

Regex 如何在Perl中从字符串中去掉方括号

Regex 如何在Perl中从字符串中去掉方括号,regex,perl,Regex,Perl,我有一个值括在方括号内的变量。 例如:my$status=[计算版本=成功,清理过时进程=成功,更新版本=成功,邮件=空,发布操作=成功] 现在,我想去掉字符串上方的方括号。我试着低于正则表达式,但它不适用于方括号 $status =~ s/[{}]//g; #This is working for curly braces $status =~ s/[\[\]]//g; #is not working 你能帮忙吗 #!perl -w use strict; use warnings; my

我有一个值括在方括号内的变量。 例如:my$status=[计算版本=成功,清理过时进程=成功,更新版本=成功,邮件=空,发布操作=成功]

现在,我想去掉字符串上方的方括号。我试着低于正则表达式,但它不适用于方括号

$status =~ s/[{}]//g;  #This is working for curly braces
$status =~ s/[\[\]]//g; #is not working
你能帮忙吗

#!perl -w
use strict;
use warnings;
my $status="[Calculate version=SUCCESS, cleanup stale processes=SUCCESS, Update version=SUCCESS, mail=null, Post Actions=SUCCESS]";
$status =~ s/[\[\]]//g;
print "status is : $status\n";
发件人:

[
在字符类中不是特殊的,除非它是POSIX字符类的开始(请参见下面的“POSIX字符类”),它通常不需要转义

]
通常是POSIX字符类的结尾(请参见下面的“POSIX字符类”),或者它表示括号内字符类的结尾。如果要在字符集中包含
]
,通常必须对其进行转义

但是,如果
]
是括号中字符类的第一个字符(如果第一个字符是插入符号,则为第二个字符),则它并不表示类的结尾(因为不能有空类),并且被视为无需转义即可匹配的字符集的一部分

所以

$status=~s/[]///g;

但是,

$status=~s/[\[\]]//g;
对我有用。不确定为什么它不适合你,除非你的真实代码中有其他东西没有显示出来。

来自:

[
在字符类中不是特殊的,除非它是POSIX字符类的开始(请参见下面的“POSIX字符类”),它通常不需要转义

]
通常是POSIX字符类的结尾(请参见下面的“POSIX字符类”),或者它表示括号内字符类的结尾。如果要在字符集中包含
]
,通常必须对其进行转义

但是,如果
]
是括号中字符类的第一个字符(如果第一个字符是插入符号,则为第二个字符),则它并不表示类的结尾(因为不能有空类),并且被视为无需转义即可匹配的字符集的一部分

所以

$status=~s/[]///g;

但是,

$status=~s/[\[\]]//g;
对我有用。不确定为什么它不适合你,除非你的真实代码中有其他东西没有显示出来。

你也可以使用:

您还可以使用:


谢谢,肖恩。我已经试过以上两种方法了。好像它在太空中破碎了。情况如下:Calculate@Ras编辑您的帖子以包含一个。更新了我的问题中的代码段,它就起作用了。这是我的错。好像我的剧本里有bug。谢谢你的帮助,谢谢肖恩。我已经试过以上两种方法了。好像它在太空中破碎了。情况如下:Calculate@Ras编辑您的帖子以包含一个。更新了我的问题中的代码段,它就起作用了。这是我的错。好像我的剧本里有bug。谢谢你的帮助。
my $status = "[Calculate version=SUCCESS, cleanup stale processes=SUCCESS, Update version=SUCCESS, mail=null, Post Actions=SUCCESS]";
$status =~ tr/[]//d;
print "$status\n";
# Calculate version=SUCCESS, cleanup stale processes=SUCCESS, Update version=SUCCESS, mail=null, Post Actions=SUCCESS