2016-11-16 23 views
2

替換使用正則表達式的整個字符串我想它是這個樣子。在Perl

my $str = 'axxxx'; 

my $replacement = 'string_begins_with_a'; 

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

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

回答

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爲其賦值:

​​

或只是

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

感謝這個答案是非常有用的呢! – criz

+0

對不起我的壞,我不知道,你發佈你半分鐘更早。 – criz

1

匹配整個字符串與^a.*正則表達式,然後用替換字符串替換它。

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

感謝這就是我一直在尋找! – criz

+0

我不說,你從我的答案複製,但它僅包含相同的解決方案。我知道所以有些滯後顯示的答案。 –