4.1. 匹配子表达式 1 次或多次
元字符 +
可以匹配一个或者多个字符,至少1个,不会出现匹配 0
字符的情况
使用字符集合的时候,我们要把 +
放到字符集合外面
比如字符集合 [0-9]
,我们想匹配多次的话,就要写成 [0-9]+
,而不是 [0-9+]
下面我们来做一个例子,匹配邮箱
<?php
//字符串
$str = '15593838@qq.com
zisayzhang@outlook.com
huawei.zisay@hw.com
';
//正则表达式
$regular = '/[\w.]+@[a-zA-Z]+\.[a-zA-Z]+/';
//执行匹配正则表达式
preg_match_all($regular, $str, $matches);
//打印结果
echo '<pre>';
print_r($matches);
echo '</pre>';
输出结果
Array
(
[0] => Array
(
[0] => 15593838@qq.com
[1] => zisayzhang@outlook.com
[2] => huawei.zisay@hw.com
)
)
从输出结果可以看出,我们两个邮箱都匹配到了,而且 @
符前面的字符个数和后面的字符个数都是多个。现在我们来拆解一下这个表达式
[\w\.]+
使用一个字符集合来匹配 字母数字或下划线
和 .
,可以匹配多个字符,但至少匹配1个字符
@
@符号原样输出就可以了
[a-zA-Z0-9]+
只匹配字母数字,可以匹配多个字符,但至少匹配1个字符(如:qq、outlook、gmail、163,都能匹配到)
\.
对 .
进行转义
[a-zA-Z]+
只匹配字母,可以匹配多个字符,但至少匹配1个字符(如 com)
推荐文章: