代码在这里。我的问题是,由于$1
是Fred
而且这是替代,这意味着将fred or barney
替换为Fred
,为什么答案不能像I saw FRED with FRED.
我没有想知道这里发生了什么。谢谢你的回答!
$_ = "I saw Barney with Fred.";
s/(fred|barney)/\U$1/gi; # $_ is now "I saw BARNEY with FRED."
答案 0 :(得分:1)
因为捕获组不仅捕获字符串Fred
,还捕获Barney
。因此,如果正则表达式引擎看到Fred
,它会立即替换为大写FRED,如果引擎看到Barney,它将替换为大写Barney。
答案 1 :(得分:0)
$1
指的是“捕获的第一个捕获组”。因此,当(fred|barney)
与fred
匹配时,这就是$1
包含的内容,但当它与barney
匹配时,那就是$1
包含的内容。