PHP中正则表达式学习及应用(二)
正则表达式中的“元字符”
* 匹配前一个内容的0次1次或多次
例如:
<?php $mode="/go*gle/"; //前一个内容指的是 * 的前一个字符 o ,在$str中出现的次数最少0次。也就是说,可以出现,也可以不出现。 $str="google"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
. 匹配内容的0次1次或多次,但不包含回车换行
例如:
<?php $mode="/go.gle/"; //与 * 的用法类似,就是将 \n 排除在外 $str="google"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
+ 匹配前一个内容的1次或多次
例如:
<?php $mode="/go+gle/"; //与 * 的用法类似,将0次排除在外。 $str="gooogle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功gooogle
?匹配前一个内容的0次或1次
例如:
<?php $mode="/go?gle/"; //与*用法类似,将多次排除在外 $str="gogle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功gogle
| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)
例如:
<?php $mode="/google|abc/"; //google和bac 同时在$str中出现 或者 google出现 或者 bac出现。 $str="googlebac"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
^ 匹配字符串首部内容
例如:
<?php $mode="/^google/"; //字符串google出现在$str的首部 $str="googleabc"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
$ 匹配字符串尾部内容
例如:
<?php $mode="/google$/"; //google出在$str的尾部 $str="abcgoogle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
\b 匹配单词边界,边界可以是空格或者特殊符合
例如:
<?php $mode="/\bgoogle\b /"; //匹配$str中的空格或者是其他字符 $str="abc google "; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
\B 匹配除带单词边界之外的内容
例如:
<?php $mode="/\bgoogle\B/"; //匹配除带单词之外的内容 $str="abc googleabc"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
{m} 匹配前一个内容的重复次数为M次
例如:
<?php $mode="/go{2}gle/"; //匹配$str中的字符 o 出现2次 $str="google"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功google
{m,} 匹配前一个内容的重复次数大于等于M次
例如:
<?php $mode="/go{2,}gle/"; //匹配$str中字符 o 的次数大于等于2次 $str="gooogle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功gooogle
{m,n} 匹配前一个内容的重复次数M次到N次
例如:
<?php $mode="/go{2,4}gle/"; //匹配$str中字符 o 大于2次小于4次 $str="gooogle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功gooogle
( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取
例如:
<?php $mode="/goo(abc)gle/"; //匹配$str中的abc $str="gooabcgle"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功gooabcgle
PHP中正则表达式学习及应用(二)#
本节内容的视频教程:链接: http://pan.baidu.com/s/1bn4UaiN 密码: net6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现