我正在從事語言翻譯項目,並被卡在中間的某處。修改和替換一個字符串中的引用子字符串
我有情況有像
print "$Hi $There","$Welcome $Aboard"
一個字符串,我想
print "Hi There", "Welcome Aboard"
即提取引述子,剝去「$」,並用新的替換原來的子。
我能夠提取和更改引用的子字符串,但是當我嘗試在原始字符串中替換它們時,它不起作用。向您展示示例代碼:
#!/usr/bin/perl
use strict;
use warnings;
my $str = "print \"\$Hi \$There\",\"\$Welcome \$Aboard\"";
print "Before:\n$str\n";
my @quoted = $str =~ m/(\".*?\")/g; #Extract all the quoted strings
foreach my $subStr (@quoted)
{
my $newSubStr = $subStr;
$newSubStr =~ s/\$//g; #Remove all the '$'
$str =~ s/$subStr/$newSubStr/g; #Replace the string**::Doesn't work**
}
print "After:\n$str\n";
我不知道爲什麼替換失敗。將不勝感激的幫助。
非常感謝。這工作完美。 我不解釋'$你好'等等...爲了將python代碼翻譯成perl,這是一個粗糙的中介解析步驟,我把'$'放在每個單詞的前面,然後從關鍵字,字符串等中刪除。 感謝您的幫助:) – Udeeksh 2014-09-27 06:13:16