繁体   English   中英

Perl正则表达式替换

[英]Perl regular expression replacement

代码在这里。 我的问题是,因为$1Fred ,这是一个替代品,这意味着更换fred or barneyFred ,为什么不能回答像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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM