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)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~