[英]Perl regular expression replacement
代码在这里。 我的问题是,因为$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."
因为捕获组不仅捕获字符串Fred
而且捕获Barney
。 因此,如果正则表达式引擎看到Fred
,则立即将其替换为大写FRED;如果引擎看到Barney,则将其替换为大写Barney。
$1
表示“无论捕获的第一个捕获组是什么”。 因此,当(fred|barney)
匹配fred
,这就是$1
包含的内容,但是当它匹配barney
,这就是$1
包含的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.