您的位置:首页 > 编程语言 > PHP开发

PHP正则表达式学习总结——重复/量词

2015-02-10 15:45 453 查看
重复次数是通过量词指定的,可以紧跟在下面元素之后:

1.单独的字符, 可以是经过转义的

2.元字符。

3.字符类

4.后向引用(参加下一部分)

5.子组(除非它是一个断言)

一般的重复量词指定了一个最小数值和一个最大数值的匹配次数, 通过花括号包裹两个数字,两个数字之间用逗号隔开的语法定义。 两个数值都必须小于 65536, 并且第一个数字必须小于等于第二个。 比如: z{2,4} 匹配 ”zz”, “zzz”, “zzzz”。 单个的右花括号不是特殊字符。 如果第二个数字被省略,但是逗号仍然存在,就代表没有上限; 如果第二个数字和逗号都被省略,那么这个量词就限定的是一个确定次数的匹配。 比如 [aeiou]{3,} 匹配至少三个连续的元音字母,但是同时也可以匹配更多, 而 \d{8}
则只能匹配 8 个数字。 左花括号出现在不允许使用量词的位置或者与量词语法不匹配时, 被认为是一个普通字符,对它自身进行原文匹配。 比如,{,6}就不是一个量词, 会按照原文匹配四个字符 ”{,6}”。

量词 {0} 是被授权的,它会导致的行为是认为前面的项和量词不存在。

为了方便(以及历史的兼容性),最常用的三个量词都有单字符缩写。

单字符量词 * 等价于 {0,}

+ 等价于 {1,}

? 等价于 {0,1}

可以通过一个不匹配任何字符的子模式后面紧跟一个匹配 0 或多个字符的量词来构造一个没有上限的无限循环。 比如:(a?)*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: