Regex Perl regrex:从匹配中排除模式
我有Regex Perl regrex:从匹配中排除模式,regex,perl,Regex,Perl,我有/home/user/abc/def/mng,我想替换/home/user,或者我之前做了一个检查,如果字符串包含$home,那么就从匹配中排除$home或/home/user,并在模式/abc/def/mng上处理某些内容 如何使用Exlude?如果我已经很好地理解了你的问题,你需要这样的东西: my $newstring = $oldstring =~ s/(\/home\/user)|(\$HOME)//gr; 看看这里:这并不特别聪明,但我认为它符合您的要求: use stric
/home/user/abc/def/mng
,我想替换/home/user
,或者我之前做了一个检查,如果字符串包含$home,那么就从匹配中排除$home或/home/user
,并在模式/abc/def/mng
上处理某些内容
如何使用Exlude?如果我已经很好地理解了你的问题,你需要这样的东西:
my $newstring = $oldstring =~ s/(\/home\/user)|(\$HOME)//gr;
看看这里:这并不特别聪明,但我认为它符合您的要求:
use strict;
use warnings;
use Data::Dumper;
my $variable = '/home/jtym/abc/def/mng';
my $home_if_exists;
if($variable =~ /^$ENV{HOME}/) {
$variable =~ s/^$ENV{HOME}//;
$home_if_exists = $ENV{HOME};
}
$variable =~ s/\//SLASH/g;
$variable = $home_if_exists.$variable;
print Dumper($variable);
$VAR1='/home/jtymlashabcslashdefslashmng' 它必须是正则表达式吗?因为我会建议
File::Spec
,只做逻辑测试。