Perl:理解正则中“.”可匹配出回车符(“\n”)外任意字符的例子,配合 $^I 关键字
要把下面文件的内容改了,
Program name: granite
Author: Gilbert Bates
Company: RockSoft
Department: R&D
Phone: +1 503 555-0095
Date: Tues March 9, 2004
Version: 2.1
Size: 21k
Status: Final beta
改成这样:
Program name: granite
Author: Judas
Company: RockSoft
Department: R&D
Date: Wed Jul 3 02:52:49 EDT 2019
Version: 2.1
Size: 21k
Status: Final beta
下面的代码中,第102行想实现删除phone的那一行文件内容,但实际上没有删除最后的换行符
98 chomp(my $date = `date`);
99 $^I = ".bak";
100 while(<>){
101 s/Author:.*/Author: Wei Yan/;
102 s/^Phone.*//;
103 s/Date.*/Date: $date/;
104 print;
105 }
导致文件内容产生了一行空格:
Program name: granite
Author: Wei Yan
Company: RockSoft
Department: R&D
Date: Wed Jul 3 02:52:49 EDT 2019
Version: 2.1
Size: 21k
Status: Final beta
如果把102行代码改为:
102 s/^Phone.*//s;
或者
102 s/^Phone.*\n//s;
就能把phone那一行完全删除
最新文章
- 纯css实现二级导航菜单效果,通过简单的鼠标事件操作页面元素样式变换实现二级导航菜单的功能,非常简单实用,
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十二)水情雨情模块
- linux学习笔记--文件
- 《DSP using MATLAB》示例Example4.13
- 2.Unable to instantiate Action, templateAction, defined for &#39;template_list&#39; in namespace &#39;/&#39;templateAction
- sql where 1=1和 0=1 的作用
- table表头标题th浮动提示-MyTable.js
- CCSprite的使用方法大全
- EF 随机排序
- 【转载】Powershell连接世纪互联Office365
- 查询Table name, Column name, 拼接执行sql文本, 游标, 存储过程, 临时表
- 设计模式之十三:适配器模式(Adapter)
- PAT 1026
- Tomcat中配置多个端口
- 对Qt for Android的评价(很全面,基本已经没有问题了,网易战网客户端就是Qt quick写的),可以重用QT积累20年的RTL是好事,QML效率是HTML5的5倍
- Java进阶02 异常处理
- poj2386 Lake Counting(简单DFS)
- MVC中用 BundleCollection 压缩CSS时图片路径问题
- web服务器小记
- PeopleSoft单点登录工作原理