在Perl中使用正则表达式替换整个字符串

时间:2016-11-16 10:04:30

标签: regex perl

我希望看起来像这样。

my $str = 'axxxx';

my $replacement = 'string_begins_with_a';

$str =~ s/^a/$replacement/;

print "$str\n"; #should print 'string_begins_with_a'

2 个答案:

答案 0 :(得分:2)

您需要在.*之后添加a来消费其余部分:

my $str = 'axxxx';
my $replacement = 'string_begins_with_a';
$str =~ s/^a.*/$replacement/;
print "$str\n"; #prints 'string_begins_with_a'

或者,您可以检查$str是否以a开头,然后为其分配$replacement值:

$str = ($str =~ /^a/) ? $replacement : $str;

或只是

if ($str =~ /^a/) {
    $str = $replacement;
}

答案 1 :(得分:1)

将整个字符串与^a.*正则表达式匹配,然后使用替换字符串替换它。

$str =~ s/^a.*/$replacement/;
print "$str\n"; # would print 'string_begins_with_a'