perl学习小结(3):s///匹配替换及正则表达式高级应用
来源:互联网 发布:怎么查淘宝注册日期 编辑:程序博客网 时间:2024/06/06 06:30
修饰符/g(global全局) 要求s///将不相重叠的所有匹配上的部分都进行替换,如s//s+/ /g;将所有的是将多个空格用单个空格替换掉
大小写转换:确保被替换的字符串均是大写的,可以使用/U修饰符,其要求紧接着的均是大写,如s/(fred|barney)//U$1/gi;
要求后面的均为小写:/L。可以使用/E改变/U、/L对剩余的(替换的)字符串的默影响。
小写形式的修饰符/l 和/u,只作用于下一个字符
同时使用/u 和/L 表示“第一个字母大写,其它字母均小写
split与join的使用:
@fields = split /separtor/, $string;默认时,split 对$_操作,模式为空白
my $result = join $glue, @pieces;
列表context下m//的使用:
在列表context 中使用模式匹配(m//)时,如果匹配成功返回值为内存变量值(模式中()内部分的值)的列表;如果匹配失败则为空列表。
my $data = “Barney Rubble Fred FlintstoneWilma Flintstone”;
my %last_name = ($data =~ / (/w+)/S+(/w+)/g);
非贪婪的数量词:贪婪的数量词(*+?{m,n})?
匹配多行文本:/m选项可以在字符串中使得^$根据内部换行符进行锚定
my $filename = shift @ARGV;
open FILE,$filename#打开文件时不区分文件名大小写
or die "Can’t open '$filename': $!";#$!
my $lines = join '',<FILE>;#此时^$锚定整个字符串
$lines =~ s/^/$filename:/gm;#而选项/m允许针对内部换行符进行匹配而不是整个字符串
print $lines;
更新大量文档:
#!C:/strawberry/perl/bin/perl.exe -w
use strict;
$^I="";#$^I中的字符串会成为备份文件的扩展名,空串表示不会将原来的文件进行备份
while(<>){
s///;
...
print;#写入
}
非捕捉用的括号:开括号后面加上一个问号和冒号,(?:),此时括号只进行分组,又称为非捕捉用的括号(non-capturing parentheses)
Perl 的正则表达式的括号还有些其它的特殊用法,它们可以完成某些复杂的功能,如向前找,向后找,内嵌注释,甚至在
模式中执行代码。你可以参阅perlre 的帮助手册了解更详细的信息。
- perl学习小结(3):s///匹配替换及正则表达式高级应用
- Perl 正则表达式替换
- perl正则表达式匹配
- Perl——正则表达式(四) 查找替换s///
- Perl 正则表达式小结
- JAVA 正则表达式(匹配、切割、替换)
- 巧用多个正则表达式解决取反替换问题(解决不匹配则替换问题)——用sed和perl的正则表达式
- 正则表达式 模式匹配 PERL
- Perl 正则表达式 模式匹配
- Perl 正则表达式捕捉匹配
- Perl正则表达式 模式匹配
- 正则表达式基础及高级应用
- Perl正则表达式小结~张润萌
- 正则表达式的应用 匹配、查找、分割、替换
- 正则表达式匹配和替换
- 正则表达式学习及应用
- 学习perl正则表达式
- 正则表达式(2)——应用(匹配、切割、替换、查找)、模拟网络爬虫
- vc 断点失效的解决方法
- ibatis 3 beta2学习笔记
- 初次整理出软件测试计划模板
- 自定义消息传CString类型数据
- 关于读书
- perl学习小结(3):s///匹配替换及正则表达式高级应用
- wxSqlite3 - wxWidgets封装的Sqlite数据库访问类库 - 使用感受
- 【转帖】PE文件格式详解
- VC++实现NAT穿透之NAT类型检测
- 每个新手都要搞懂弄明白的
- Spring IOC反转控制器
- struct和typedef struct
- 程序人生:你真的懂Java吗?
- 在MTK中添加TASK与常用函数分析