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?)*
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?)*
相关文章推荐
- PHP正则表达式学习总结--1
- php学习第四章:正则表达式(二)字符组与是量词
- Php常用文件操作函数,正则表达式,个人学习总结
- 【PHP进阶篇 未完】5.正则表达式--慕课网【学习总结】
- 实例学习PHP中的正则表达式
- PHP中Perl兼容类型的正则表达式相关函数总结
- PHP正则表达式的快速学习
- Java 正则表达式学习总结和一些小例子
- PHP正则表达式学习笔记(一)
- java正则表达式学习总结,以及和javascript正则表达式的区别
- php入门学习知识点四 PHP正则表达式基本应用
- PHP学习正则表达式 课件第1/2页
- PHP中正则表达式学习及应用
- PHP 正则表达式学习
- 正则表达式经典学习总结
- ASP.NET验证控件学习总结与正则表达式学习入门
- 正则表达式学习总结, 附java源码
- php正则表达式学习笔记
- PHP正则表达式学习参考的文章
- 正则表达式学习记录-重复