找回密码
 注册
查看: 7943|回复: 1

perl语言的优先级

[复制链接]
发表于 2011-11-14 20:44:42 | 显示全部楼层 |阅读模式
正则表达式中的这些元字符,可能让你觉得如果没有一个表很难记住它们的关系。这就需要一个优先级的表,表明模式中
哪一部分应当结合在一起。这和操作符的优先级表有些不同,正则表达式的优先级表更简单,只有4 个级别。本节,将回
顾Perl 在模式中使用的所有的元字符。
1.在此优先级表的最顶端是括号:(()),在分组和引用内存值的时候使用。括号内部的任何部分比括号外的部分结合更紧
密。
2.第二级是数量词。这里有星号(*), 加号(+),问号(?)以及由花括号表示的数量词,如{5,15}, {3, }, {5}等。它们通常
和前一项元素结合。
3.第三级的是锚定和序列(sequence)。锚定包括(^) 表明字符串的开头,($)表明结尾,(\b)词界符,(\B)非词界符。序列(一
个元素紧接着一个元素)实际上是一种操作,虽然它没有使用元字符。这段话的含义是一个单词中的字母结合更紧密,就
像锚定紧贴字母一样。
4.优先级最低的是竖线(|),表示或。由于其优先级最低,它通常将模式划分成几个部分。它在优先级最底端是因为我们希
望像|/fred|barney/里面的字母比或(|)结合更紧密。如果或(|)的优先级比序列的优先级更高,那么,上述模式的含义是匹配fre,
接着是d 或者b, 然后是arney。因此,或(|)的优先级最低,字母序列的优先级要高些。
除了优先级表外,还有被称为原子(atoms)的东西,它们组成模式最基本的块。它们是单个字符,字符类,以及后引用
(backreference)。
回复

使用道具 举报

发表于 2012-2-26 14:59:14 | 显示全部楼层
谢谢分享了~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-22 20:58 , Processed in 0.028864 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表