Perl学习笔记 No.9
来源:互联网 发布:我杀了他 知乎 编辑:程序博客网 时间:2024/05/18 03:24
使用正则表达式处理文件
1. s///,s/abc/fred/ 先匹配abc,如果匹配上,使用fred替换abc;如果没有匹配上,则什么都不做
2. s///g,全局替换,s/abc/fred/g,将所有abc都替换成fred
3. 可以使用其他符号替代/作为分隔符
4. /six同样适用
5. $_ = “I saw Barney with Fred.”;
$_ = s/(fred|barney)//U$1/gi; # 现在是 “I saw BARNEY with FRED.”
/U后面的全部大写,同理,/L后面的全部小写,要终止效果,使用/E
6. /l和/u只针对后面的一个字符
7. /u/L 连用,表示第一个字母大写,其他小写
8. 以上修饰符也可以在print语句的""中使用
9. split不能分割用,逗号隔开的数据...0.0
10. split将模式与字符串比较,将由 分离符所分隔开的子串作为列表返回回来.比如,@fields = split/:/,"abc:def:g:hij";
11. 如果两个分隔符连续出现,则会返回空元素,但结尾的空元素被丢弃
12. 默认时,split 对 $_操作,模式为空白.my @fields = split; #相当于 split//s+/,$_;但是也有区别,就是会将开头的空元素丢弃
13. join函数,my $x = join “:”, "4, 6, 8, 10, 12"; #$x 为 4:6:8:10:12
14. 如果第二个参数只有一个或没有元素,则只返回一个或空
15. 切记join第一个参数为字符串,而不是模式
16. 在列表上下文中,匹配表达式返回的也是列表
my $text = "I love you!I love my city!";
my @result = ($text =~ /[a-z]+/gi);
print "@result/n"; #输出: I love you I love my city
17. 如果不止一个括号,则每次返回不只一个字符串.例如把字符串放到hash中:
my $data = "Barney Rubble Fred Flintstone Wilma Flintstone";
my %last_name = ($data =~ /(/w+)/S+(/w)/g );
每当模式匹配成功,则返回一对值,成为hash的key/value
18. 非贪婪数量词...前面讲到的+,*,?,{}都是贪婪数量词,就是先吃再吐(回退).非贪婪的,就是先匹配再吃.具体效率其实与数据相关.
19. +?,*?,{}?,?? 就是全部非贪婪数量词
20. /m修饰符,用于处理多行字符串(有多个换行符)
21. $^I 此标量的值,可以决定while(<>)备份文件的类型,比如 $^I = ".bak";或者$^I="~";
22. 在开括号(后面加上?:,表示这个括号只分组,不引起内存变量的分配
- Perl学习笔记 No.9
- Perl学习笔记 No.1
- Perl学习笔记 No.2
- Perl学习笔记 No.3
- Perl学习笔记 No.4
- Perl学习笔记 No.5
- Perl学习笔记 No.6
- Perl学习笔记 No.7
- Perl学习笔记 No.8
- Perl学习笔记 No.10
- Perl学习笔记 No.11
- Perl学习笔记 No.12
- Perl学习笔记 No.13
- perl学习笔记-----------------------(9)
- Perl学习笔记
- perl学习笔记
- perl 学习笔记
- perl语言学习笔记
- SCOM Monitor介绍 [SCOM中文系列之五]
- 一个简单二级文件管理系统
- 《石器时代》移动平台单机版制作中...
- 网页灰色代码-黑白代码-单色代码-CSS滤镜
- 取得手机唯一标识ID
- Perl学习笔记 No.9
- 2010-04-22 开博
- 前国际奥委会主席萨马兰奇于西班牙当地时间13时25分(北京时间19时25分)因病逝世
- Visual C++编程之命令行编译Solution
- 回溯 01 背包
- 寻求包养
- 关于SQL_CALC_FOUND_ROWS和COUNT(*)
- 第一章 Hibernate环境搭建
- (windows下)用Eclipse搭建C/C++开发环境