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)
PHP 正则表达式
关于 LearnKu
推荐文章: