使用过UNIX的sed、awk、grep指令的朋友,相信不会对文字处理(Regular Expression)感到陌生。
只有了解文字处理,编写起Perl语言很多难题都可迎刃而解。
下面开始介绍文字处理的用法。
/pattern/ 说明
除了换行字符n外,寻找只有一个字符的字符 x? 寻找0个或是1个x字符 x* 寻找0个或是0个以上的x字符 .* 寻找0个或是0个以上的任何字符 x+ 寻找1个或是1个以上的x字符 .+ 寻找1个或是1个以上的任何字符 {m} 寻找是m个个数指定的字符 {m,n} 寻找在m个个数以上,n个个数以下的字符 {m,} 寻找m个个数以上指定的字符 [] 寻找[]内的字符 [^] 寻找不是[]内的字符 [0-9] 寻找符合0-9的任意字符 [a-z] 寻找符合a-z的任意字符 [^0-9] 寻找不符合0-9的任意字符 [^a-z] 寻找不符合a-z的任意字符 ^ 寻找字符串开头的字符 $ 寻找字符串结尾的字符 d 寻找数字的字符,和[0-9]语法一样 d+ 寻找数字以上的字符,和[0-9]+语法一样 D 寻找非数字的字符,和[^0-9]语法一样 D+ 寻找非数字以上的字符,和[^0-9]+语法一样 w 寻找一个英文字母或是数值的字符,与[a-zA-Z0-9]语法一样 w+ 寻找一个以上英文字母或是数值的字符,与[a-zA-Z0-9]+语法一样 W 寻找一个非英文字母或是数值的字符,与[^a-zA-Z0-9]语法一样 W+ 寻找一个非英文字母或是数值的字符,与[^a-zA-Z0-9]+语法一样 s 寻找一个空白的字符,和[ntrf]一样 s+ 寻找一个以上空白的字符,和[ntrf]+一样 S 寻找一个非空白的字符,和[^ntrf]一样 S+ 寻找一个以上非空白的字符,和[^ntrf]+一样 b 寻找一个不以英文的字母、数字为边界的字符串 B 寻找一个以英文、数字为边界的字符串 a|b|c 找到符合a字符或是b字符或是c字符的字符串 abc 找到一个含有abc的字符串 (pattern) ()这个符号会记忆所寻找到的字符串,是一个实用的语法第一个()内所找到的字符串变成$1这个变量或是1变量第二个()内所找到的字符串变成$2这个变量或是2变量一上为介,依次类推。
/pattern/i i这个参数是代表忽略英文大小写的意思,也就是在寻找字符串的时候,不会去考虑英文的大小写 如果要在pattern模式中寻找一个有特殊意义的字符串,要在这个字符串前家上这个符号,这样才回让这个特殊字符失效。