船過水無痕

Java | Web | Architecture
posts - 12, comments - 0, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

perl正则

Posted on 2010-01-05 18:09 zdxue 阅读(380) 评论(0)  编辑  收藏
1.正则术语

模式

元字符(在任何元字符前面加上\,它就失去元字符的意义。如 /3\.1415926/)
.  任意字符(回车/换行除外, \.表示点号本身)
\ (如果要表示反斜线本身,使用\\)
()  分组符号
/  正则
简易量词
? 一次或0次
+ 至少一次
* 0次或多次
{n}
{n,}
{n,m}
模式分组
反向引用(相当于指定分组的复制)  \N   反斜线后面的数字和模式分组的组号匹配。  如: "abba"   /(.)\1/ 返回真, ab假 bb真 ba假 最终找到一个匹配的bb
反向引用在5.10有新的表达方式:   \g{N} 如果N为负数,表示相对反向引用(即分组从右向左数)另外,必须use 5.010;

择一匹配
或运算 |  例: /X|y/ 匹配X或y

字符集与取反
[] 通常用中括号表示. 如: [a-zA-Z0-9] , 只匹配字符集中的单个字符!
简写字符集: 
\d
\w
\s
\D
\W
\S
取反 
^  例: [^abc]  匹配除abc之外的任意字符
可选修饰符(可以组合使用):
加在正则最右边
i    表示不区分大小写
x    表示加入空白
s    表示匹配任意字符
组合:
is
ix
xs
锚位:
^ 行的开头 
$ 行的结尾 
\b 单词边界 (一个单词 由\w组成的单词)
\B 非单词边界 
\A 输入的开头 
\G 上一个匹配的结尾 
\Z 输入的结尾,仅用于最后的结束符(如果有的话) 
\z 输入的结尾 

绑定操作符:  
=~
捕获变量以及其生命周期:
$1
$2
$3
$4
...
有多少个组,就会有多少个捕获变量
上面的写法,可以使用use 5.010的命名捕获来改写:?<label>pattern, 访问时用: $+ (label)
三个自动匹配变量:$&, $', &`
不捕获:

模式串中的内插:
即意思是模式本身可以由变量构成
如:
my $name = "xue";
if(/^($name)/) {
}

只有注册用户登录后才能发表评论。


网站导航: