在C#代码之后,我重新创建了C#的perl代码.它是相同的正则表达式,但其结果是不同的.Perl代码被捕获为"a"但C#代码被捕获为"apple".是什么让它与众不同?
C#代码
string word = Regex.Replace("apple", "(?<C>a(?=pple)|b(?=anana)|c(?=herry))", "${C}");
Console.WriteLine("fruit\'s initial: {0}", word); // result: "fruit's initial: apple"
Run Code Online (Sandbox Code Playgroud)
Perl代码
my $word = 'apple';
if ($word =~ /(?<C>a(?=pple)|b(?=anana)|c(?=herry))/) {
print "fruit\'s initial: $+{C}"; // result: "fruit's initial: a"
}
Run Code Online (Sandbox Code Playgroud)