收藏 分销(赏)

perl 模式匹配总结.doc

上传人:pc****0 文档编号:6021253 上传时间:2024-11-25 格式:DOC 页数:3 大小:52KB 下载积分:10 金币
下载 相关 举报
perl 模式匹配总结.doc_第1页
第1页 / 共3页
perl 模式匹配总结.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
 perl 模式匹配总结 正则表达式――perl模式匹配 Practiacl Extraction and Report Language 一.模式匹配操作符 1.tr/ / / 替换操作符不支持正则表达式 也不具备双引号替换能力       m/ / s/ / / 都支持正则表达式,并且可以提供或限制双引号替换能力(当用单引号作为操作符时则不具备变量替换能力) s/ / / , tr/ / / 可以用两组不同的括号进行分割,以保证格式清晰s(good)<bad> 2.绑定操作符 =~ , !~,m/ / s/ / / tr/ / / 都支持 绑定操作符的优先级非常高   3. perl 特有的全局变量 1. $` , $& , $’ 分别存有匹配内容左,匹配内容,匹配内容右的内容 2. 可以用()捕获特定的模式 并依次存入 $1 $2 $3 中   二.模式修饰词 m/ / s/ / / 和 tr/ / / 的修饰词不同 /i 忽略字母大小写 /s /m 允许模式中存在换行符 (一般模式中不允许存在换行符) /x 允许模式中换行,并表明注释,使正则表达式更易读 /o 只编译一次,针对模式中的变量代换 /g 无穷匹配           三.m/ / 匹配 1.分隔符 用 ? 或 ‘ 作分隔符时有特殊的含义 m?? 表示只匹配一次 m’ ‘ 表示禁止变量替换和六种转换 2.返回值 标量环境里 匹配成功返回 1 ,失败 返回 0 列表环境里, 返回子字串的列表,并捕获()中的模式 ( $key,$value) =~ m/(\w+:(\.*)/ ; /g 修饰词的返回值 列表环境 : 返回所有匹配字串的列表 如: my @perls = $string =~ m/perl/ig ; 如果有捕获圆括号,则返回捕获到的字串 如: 用字串 $string = “password=xyzzy verbose=9 score=0” 初始化下面的散列:%hash = {password => “xyzzy”, verbose => 9, socre=>0}; %hash = $string =~ /(\w+)=(\w+)/g ; 标量环境中 /g表示一次渐进的匹配,它令perl从上一次匹配停下来的位置开始一次新的匹配 如: while (/perl/g) { print “ $& \n”}; 三.s/ / / 操作符(替换) 返回值: 标量环境里返回值是成功替换的次数 替换部分被当作双引号看待可进行变量转换,而且可以使用前半部分模式匹配得到的变量$1,$2,$3 $&,等 新的修饰词 /e 把右边当作一个表达式计算 利用s/ / / 修改字串的用法 1.($newStr = $oldStr)=~ s/good/bad/g 2.替换数组的每一个元素: For (@newArray,@oldArray) {s/$_/newStr/g} 3.用单程循环对同一个变量重复替换 For ($string) { s/^\s//; # 丢弃开头的空白 s/\s$//; # 丢弃结尾的空白 s/\s+//g; # 丢弃中间的空白 } 4.把逗号放到整数的合理位置 $_ = “12345678”; 1 while s/(\d)(\d\d\d)(?!\d)/$1,$2/; Print “$_ \n” # 输出: 12,345,678   四.Tr/ / / 操作符 (转换) 1.tr 不支持正则表达式 和 变量替换,只是一种单纯的划定范围的替换 尽管不支持变量替换,但可以用eval expr实现 $count = eval “tr/$oldStr/$newStr/”; Die if $@; 如果仅仅是转换大小写 不要使用tr/ / / 建议使用双引号里的 转移字符 /U /L 类似的uc lc 函数   2.修饰词,与m/ / s/ / / 的修饰词不同 /c 与searchlist 为补 /s 消除重复的字符 /d 删除找到的但没有替换的字符 ,任何再searchlist 中声明但再replacement没有给出替换的字符将被删除。 如果没有/d 修饰词,那么 1),replacement 比 searchlist 短,则将复制replacement最后一个字符直到足够长 2),replacement 为空,则 replacement = searchlist 可以用此用法统计次数和/s 压缩 $string =~ tr/a-zA-Z//s # bookkeeper -> bokeper   五.元字符 12个元字符 \ | ( ) [ { ^ $ * + ? ^ : 在字符集中 ^ 表示补集 [^1,2,3] 除了1,2,3 在一般的模式中表示 以什么开头 $ : 表示以什么结尾 六.量词 分为最大量词,最小量词(由?控制) 1.最大量词 * 匹配0 或更多次 + 匹配1 或更多次 ? 匹配 1 或 0 次 {count}匹配count次 {min,} 匹配至少min次 {min,max} 匹配至少 min次,但不超过max次 2.最小量词 *? 匹配0次或更多次 +?匹配1次或更多次 ??匹配0次或1次 {min,}? 匹配最多min次 {min,max}? 匹配至少min次,但不超过max次   七.常用的字母数字正则元符号 . 通配符匹配除了换行符外的任何单字符(如果加上修饰词/s 也可以匹配换行符) \d 数字 [0-9] \D 非数字 \s 空格 \S 非空格 \w 字 [a-zA-Z0-9_] \W 非字 \E 结束大小写或掩码 \l 把下一个字符变成小写 \u 大写 \L 把\E以前的字母都变成小写 \U 大写 如:s/revision/\u$&/g;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服