9.2.7 正则表达式中元字符中的小括号
9.2.7.png
test.php
<?php
/* 元字符: 不能在正则表达式中单独使用, 用来修饰原子的。
*
* * 用来修饰其前面的原子可以出现0个1个或多个 (任意次) {0,}
*
* + 用来修饰其前面的原子可以出现1次或多次, 不能没有至少要出现在次 {1,}
*
* ? 用来修饰其前面的原子可以出现0次或1次 {0,1}
*
* {m} m = 3 用来修饰其前面原子只能出现 m次, 多一次和少一次都不可以
* {n,m} {2,5} 用来修饰其前面的原子出现个数在n到m之间,包括n和m
* {n,} {2,} 用业修饰其前面的原子可以出现至少次
* {,m} {,5} 不行, 可以以0开始
*
* | 是或的关系, 表示它两边的原子,只要有一个出现就可以, 但是, |优先级是最低的,
*
* ^ 或 \A 表示必须以什么开始, 这个必须写正则表达式的最前面
* $ 或 \Z 表示必须以什么结束, 这个必须写正则表达式的最后面
*
*
* \b 单词边界
* \B 不是单词边界
*
*
* .
* []
*
*
* () 第一个作用: 必变优先级别
* 第二个用用: 将小原子,变成大原子
* 第三个作用: 子模式, 整个表达式是一个大的模式, 小括号中是每个独立的子模式
* 第四个作用: 反向引用
*/
$str = "this http://www.lampbrother.net 2014-01-24 oraclemysqlmysqlmysqlmysqllllllllllll is island";
$reg = '/(?:\d{4})(-|\/)\d{2}\1\d{2}/';
if(preg_match($reg, $str, $arr)) {
echo "正则 <b>{$reg}</b>, 和字符串<b>{$str}</b>匹配成功<br>";
print_r($arr);
} else {
echo "匹配失败!<br>";
}