SOURCE HTML: http://socvista.com/bbs/redirect.php?fid=71&tid=916&goto=nextnewset
14:45
正则表达式,英文regular expression。用于寻找指定模式的字符串。
-- 一个简单的例子
$_ ="yabba dabba doo";
if (/abba/) {...;}
--meta. characters 转义符号
为了提高匹配的能力,引入了不少的meta. characters。这里则要介绍两个。
.(句号)用于匹配换行符意外的任意单个字符。
\(反斜杠)用于转义。比如\t用于指代一个tab符号。
()(括号)也是转义符号,用于grouping。
-- quantifier 数量符号
*:表示前面的符号出现0或多次;
.*:表示任意符号出现任意次,这个符号叫做 any old junk,因为它代表了任意长度的任意字符组合。
+:表示前面的符号出现1或多次;
?:表示前面的符号出现0或1次,也就是有或者没有。
-- grouping符号()
/fred+/ 可以匹配 fredddddddddd 这样的字符串
/(fred)+/ 则匹配 fredfredfredfred 这样的字符串。
-- 选择符号 |
该符号匹配两种情况之一,条件很宽松。
/fred( |\t)+barney/ # 中间的内容匹配若干个空格和tab的mixture字符串
/fred( +|\t+)barney/ # 中间的内容匹配若干个空格或者若干个tab字符串
-- 字符分类符号 [ ]
利用[ ] 可以指定一种字符类型,并匹配该类型中的
单个字符single character。
比如
[abcxyz] 匹配6个字符
[a-zA-Z] 匹配52个字符
[\000-\177] 匹配 178个ASCII字符
-- 字符分类取反符号 [^ ]
比如
[^def] 匹配def之外所有的单个符号。
[^n\-z] 匹配 n、hyphen、z之外的所有单个字符。
-- 字符分类符号之缩略符(shortcut)
\d = [0-9] # 所有单个数字
\D = [^\d]
\w = [a-zA-Z0-9] # 所有单个字符
\W = [^\w]
\s = [\f\t\n\r ] # 所有空白类型符号
\S = [^\s]
[\d\D] = anything # 和.符号类似,但是它包含了回车符号而.符号则不包含
[^\d\D] = nothing