正则表达式之元字符:
.匹配除\n外的任意一个字符
\转义符
正则表达式之量词:
{3} 匹配前一单元的三个
*?{0, }? 匹配前一单元的零个或多个 +?{1, }? 匹配前一单元的一个或多个 ??{0,1}? 匹配前一单元的零个或一个 * {0, } 匹配前一单元的多个或零个贪 + {1, } 匹配前一单元的多个或一个贪 ? {0,1} 匹配前一单元的一个或零个贪 正则表达式之编组: () 编组 且触发记忆 (?:) 编组但不触发记忆 正则表达式之多个选择: | 正则表达式之文法和算符优先级: '()', '(?: )' > '*', '*?', '+', '+?', '?', '??', '{}', '{}?' > '' > '|' 正则表达式之字符类: [abcwxyz]== [a-cw-z] \d== [0-9] \D== [^0-9] \w== [a-zA-Z0-9_] \W== [^a-zA-Z0-9_] \s== [\f\t\n\r ] \S== [^\f\t\n\r ] 正则表达式之选项修饰符: /i使匹配大小写不敏感 /s使.匹配任意字符,包含'\n',等价于[\d\D] /x允许正则表达式中用空白和注释来增强可读性,空格文字和制表符文字等等将被忽略,只能用\s、\t等表示。 /m匹配多行目标串时,改^和$的意义为行首锚和行尾锚 /g无重叠全局替换修饰符 正则表达式之锚: ^ 串首锚 $ 串尾锚 \b单词边界锚参考\w \B非单词边界锚 正则表达式之绑定算子: =~非赋值运算符也,绑定运算符也,It's 曰ing: 不处理$_了,处理我左边的那个家伙 正则表达式插值: 双引插值规则 正则表达式之匹配变量 ()不仅用于正则表达式的编组,也触发匹配引擎的记忆,引擎会将整个匹配段中与括号内正则表达式对应 的那部分存入记忆体内。 自1编号,引用以$1,$2,... 记忆至下一次匹配成功时结束 $&$MATCH 整个匹配段 $`$PREMATCH 匹配段之前的子串 $'$POSTMATCH 匹配段之后的子串 正则表达式举例: /^fred|barney$/要么以fred打头,要么以barney结尾的串 /^(fred|barney)$/ /(wilma|pebbles?)/ /^fred|barney$/m 正则表达式之文本处理之替换: 分隔符规则: s#^https://#http://#; s{fred}{barney}; s[fred](barney); s 绑定算子: =~ 大小写切换: \U此处起至\E全部大写 \L此处起至\E全部小写 \u下一个字母大写 \l下一个字母小写 举例: s/(bush|mandola)/\u\L$1/ig 正则表达式之split算子 语法: split/PATTERN/, EXPR, LIMIT 以/PATTERN/分割EXPR,最多分成LIMIT份 若LIMIT省略且尾部为空串,则丢弃它 若LIMIT为负值,则视其为无穷大 EXPR缺省为$_ /PATTERN/缺省为/\s+/ 正则表达式之列表环境下的m//: 返回引擎记忆体中的变量。 my$data = "Barney Rubble Fred Flintstone Wilma Flintstone"; my%last_name = ($data =~ /(\w+)\s+(\w+)/g); my@arr = ($data =~ /(\w+)\s+(\w+)/g); 正则表达式之匹配多行文本: ^和$普通模式下是串首锚和串尾锚,在/m(多行模式)下为行首锚和行尾锚 \A匹配串首,\Z 匹配串尾 /^nat/m=== /^nat|\nnat/ openFILE, $filename ordie "Can't open '$filename': $!"; my$lines = join '', $lines=~ s/^/$filename: /gm; 正则表达式之更新多个文件: 钻石符号<>的魔力:他会自动地为你打开和关闭在命令行指定的一系列文件, 若命令行没有指定任何文件名, 他就打开标准输入。 $^I会改变<>的行为,若$^I不是undef,则<>会将文件重命名以"文件名" . "$^I",然后创建名为"文件名"的文件,然后打开重命名后的文件以读, 打开新建的文件以写。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11041371/viewspace-145727/
,如需转载,请注明出处,否则将追究法律责任。