正则表达式 – 如何在维护大写的同时替换文本?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何在维护大写的同时替换文本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想用以下内容替换文件上的字符串
name
nAmE
naMEbb
NAME

并希望用“dave”替换“name”这个词,但保留原始文本的大小写.例如,我想要的输出是,

dave
dAvE
daVEbb
DAVE

是否有任何单行代码(最好在Perl中,所以我可以在许多文件中进行就地替换)?

编辑
除非两个字符串具有完全相同的长度,否则问题是不明确的.我们假设它确实如此.

perlFaq上有一些解决方案:
http://perldoc.perl.org/perlfaq6.html#How-do-I-substitute-case-insensitively-on-the-LHS-while-preserving-case-on-the-RHS

其中一个解决方案允许通过定义子例程(preserve_case)在单行中执行替换:

$string = "this is a TEsT case";
   $string =~ s/(test)/preserve_case($1,"success")/egi;
   print "$string\n";

这打印:这是一个SUcCESS案例

原文链接:https://www.f2er.com/regex/356947.html

猜你在找的正则表达式相关文章