Perl regrex:从匹配中排除模式

时间:2018-11-01 13:50:15

标签: regex perl

我有/home/user/abc/def/mng,我想替换/home/user,或者在此之前我做了检查,如果字符串包含$ HOME,则从匹配和处理中排除$ HOME或/home/user模式/abc/def/mng上有一些东西。

如何表现?

2 个答案:

答案 0 :(得分:1)

如果我很了解您的问题,则需要这样的内容:

my $newstring = $oldstring =~ s/(\/home\/user)|(\$HOME)//gr; 

在这里看看:http://tpcg.io/xukvqn

答案 1 :(得分:1)

这不是特别聪明,但它确实满足您的要求:

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 / jtymSLASHabcSLASHdefSLASHmng';