언어 번역 프로젝트를 진행 중이며 중간에 어딘가에 붙어 있습니다.문자열 내에서 따옴표 붙은 부분 문자열 수정 및 바꾸기
나는
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";
대체가 실패한 이유는 알 수 없습니다. 도움을 주시면 감사하겠습니다.
고마워요. 이것은 완벽하게 작동합니다. 필자는 '$ Hi'등을 해석하지 않습니다. 파이썬 코드를 perl로 번역하는 경우, 모든 단어 앞에 '$'를 입력 한 다음 키워드, 문자열 등에서 떼어내는 중간 중간 구문 분석 단계입니다 . 도움을 주셔서 감사합니다 :) – Udeeksh