加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:25:47 所属栏目:百科 来源:网络整理
导读:假设我想用以下内容替换文件上的字符串 namenAmEnaMEbbNAME 并希望用“dave”替换“name”这个词,但保留原始文本的大小写.例如,我想要的输出是, davedAvEdaVEbbDAVE 是否有任何单行代码(最好在Perl中,所以我可以在许多文件中进行就地替换)? 编辑 除非两个字
假设我想用以下内容替换文件上的字符串
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 "$stringn";

这打印:这是一个SUcCESS案例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读