第21章 PHP 正则表达式 实战案例
一、补齐第20章空白示例
- 判断是否全为数字
php
$str = '123456';
$preg = '/^\d+$/';
if(preg_match($preg,$str)){
echo '全是数字';
}else{
echo '包含非数字';
}
- 手机号简单校验(11位数字)
php
$phone = '13812345678';
$preg = '/^\d{11}$/';
preg_match($preg,$phone,$res);
var_dump($res);
- 正则替换示例
php
// 把字符串中所有数字替换为
$str = '会员编号:8899,积分:668';
$newStr = preg_replace('/\d/','',$str);
echo $newStr;
二、常用正则扩展元字符
- [0-9] 等价 \d 数字
- [a-zA-Z] 匹配大小写字母
- | 多选分支 例: a|b 匹配a或b
- () 分组,单独捕获匹配内容
- \D 非数字、 \W 非单词字符、 \S 非空白
三、实战常用规则
1. 用户名:4-16位字母数字下划线
/^\w{4,16}$/
2. 邮箱基础格式
/^\w+@\w+.\w+$/
3. 严格手机号(1开头11位)
/^1\d{10}$/
四、preg_match_all 全局匹配用法
php
// 提取字符串中所有数字
$str = '订单1001,金额299,数量5';
preg_match_all('/\d+/',$str,$arr);
print_r($arr);
五、易错点总结
1. PHP正则必须带定界符 // ,不能直接写 ^\d+$
2. 不加 ^ $ 会模糊匹配,只要包含就通过
3. . 默认不匹配换行,多行匹配需加修饰符
4. 优先用 preg_ 系列,不要用ereg旧函数

请登录后发表评论
注册
停留在世界边缘,与之惜别