第22章 PHP 正则表达式 修饰符与分组高级
一、正则常用修饰符(写在定界符后面)
1. i:忽略大小写
2. g:全局匹配(PHP中preg_match_all自带全局)
3. m:多行模式,^$匹配每行开头结尾
4. s:让 . 也能匹配换行符
5. u:匹配中文、UTF-8字符
示例写法:
/^[a-z]+$/i
二、分组 () 用法
1. 把多个字符当成一个整体
2. 可单独捕获分组内容,方便提取
3. 配合次数符使用
基础示例:
php
// 匹配重复的abc
$preg = '/(abc)+/';
三、字符集 [] 规则
- [abc] :匹配a、b、c任意一个
- [a-z] :小写字母
- [A-Z] :大写字母
- [0-9] :数字
- [a-zA-Z0-9_] :等价 \w
- [^abc] :取反,不匹配a、b、c
四、中文正则匹配
UTF-8 中文规则:
php
$preg = '/[\x7f-\xff]/';
// 标准中文匹配
$preg = '/^[\u4e00-\u9fa5]+$/u';
五、正则贪婪与非贪婪
- 默认 贪婪:尽可能匹配最长
- 非贪婪:加 ? 匹配最短
写法: .*? 、 .+?
示例:
php
$str = '111222';
// 非贪婪提取
preg_match_all('/.*?/',$str,$arr);
六、preg_replace 高级替换
批量替换敏感词:
php
$str = '垃圾 傻逼 内容';
$preg = '/垃圾|傻逼/';
$new = preg_replace($preg,'***',$str);
echo $new;
七、本章核心总结
1. 修饰符加在定界符末尾,i、s、m、u最常用
2. () 分组、 [] 字符集是正则进阶核心
3. .*? 非贪婪,爬虫抓取标签必用
4. 匹配中文必须加 u 修饰符
5. 敏感词过滤、标签提取都靠正则分组+替换

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