Perl语言学习笔记 7 正则表达式
1、正则表达式匹配的是一个模式,只分为匹配和不匹配两种。 2、如果模式匹配对象是“$_”,只用把模式写在/ /之间即可,如:/abc/ 3、元字符:. 点号是任何单字符的通配符,换行(n)除外 *:表示0到无穷次 +:表示1到无穷次 5、圆括号 用来分组,支持反向引用1、2,如:/(.)1/ perl 5.10支持新的反向引用:g{N}#N可用负数表示相对位置 6、择一匹配:| 如:(a|b) 7、字符集[],如:[A-Za-z] 简写:d:数字; w:单词(字母、数字、下划线); s:换行、分页、制表、回车、空格(nftr ) h:匹配横向空白,[t ] v:匹配纵向的空格,等效于 [fnr] R:匹配任何类型的断行 8、反义简写 D、W、S:匹配相应小写版本以外的字符 [dD]:表示任何数字和非数字,可以匹配任何字符 9、模式匹配操作符的写法 m//、m{}、m()、m<>、m%%等 使用不同的定界符可以提高代码可读性:/^http::/// = m%^http://% 10、可选修饰符(可以组合使用,如:m{}isx) /i:大小写无关的匹配 /s:匹配任意字符,使 . 匹配换行符 /x:可以在模式中加入任意空白和注释 11、锚位 ^:开始锚位,标识一个字符串的开头 $:结束锚位,标识一个字符串的结尾 b:单词边界锚位,用于匹配任何单词的首尾,可以单独使用 12、绑定操作符 默认匹配的是 $_ ,绑定操作符可以指定要匹配的字符串,如:$word =~ /abc/ 13、模式串中的内插 如:$what = "larry"; ? ?if(/{$what}*/){} 14、捕获变量 正则表达式处理的结果可以被捕获,每个括号都被捕获,依次为:$1、$2、$3 捕获变量的有效期到下次成功捕获新的变量为止。 不捕获模式:(?:abc) 命名捕捉:(?<LABEL>PATTERN),如:m/(?<name1>w+)(and|or)(?<name2>w+)/;在5.10版本之后可以使用,反向引用可以改为:g{LABEL} 自动匹配变量:$`、$&、$':依次为匹配字符串之前的内容、匹配字符串、匹配字符串之后的内容 15、通用量词 {}:括号内指定重复的次数,如:(a{3,15})、(a{5,}) 16、优先级 圆括号:()、量词:*/+/?/{m,n}、锚位和序列:^/$、择一:|、元素:a/[abc]/d/l 17、模式测试程序 while(<>){ chomp; if(/YOUR_PATTERN/){ print "Matched: |$`<$&>$'|n"; }else{ print "no matchedn"; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |