首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP正则表达式

PHP正则表达式

作者头像
行云博客
发布2022-05-11 15:58:08
1.5K0
发布2022-05-11 15:58:08
举报
文章被收录于专栏:行云博客行云博客

正则表达式

1、正则表达式中包含三种元素分别为:量词、元字符、修饰符

2、前导字符串:就是符号前面的一个字符或字符串

量词 说明

+ 匹配任何至少包含一个前导字符串

* 匹配任何包含零个或多个前导字符串

? 匹配任何包含零个或1个前导字符串

. 匹配任意一个字符串

{x} 匹配任何包含x个前导字符串

{x,y} 匹配任何包含 x 到 y 个前导字符串

{x,} 匹配任何包含至少x个前导字符串

^ 匹配字符串的行首

$ 匹配字符串的行尾

| 选择符 匹配字符串的左边或者右边

() 分组,提取

 //量词
     //preg_match()函数匹配成功返回1,失败返回0
     echo preg_match('/a+/','abc');//返回1
     echo preg_match('/a*/','abc');//返回1
     echo preg_match('/a?/','abc');//返回1
     echo preg_match('/./','abc');//返回1
     echo preg_match('/a{2}/','aabc');//返回1
     echo preg_match('/a{2,5}/','aaabc');//返回1
     echo preg_match('/a{2,}/','aaaaabc');//返回1
     echo preg_match('/^a/','bac');//返回0
     echo preg_match('/^a/','abc');//返回1
     echo preg_match('/a$/','abc');//返回0
     echo preg_match('/a$/','cba');//返回1
     echo preg_match('/a|b/','a');//返回1
     echo preg_match('/a|b/','b');//返回1
     echo preg_match('/(abc)+/','abcd');//返回1

元字符 说明

[a-z] 匹配任何包含小写字母a-z的字符串

[A-Z] 匹配任何包含大写字母A-Z的字符串

[0-9] 匹配任何包含0-9的字符串

[abc] 匹配任何包含小写字母a,b,c的字符串

[^abc] 匹配任何不包含小写字母a,b,c的字符串

[a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9和下划线的字符串

\w 匹配任何包含a-zA-Z0-9和下划线的字符串

\W 匹配任何不包含a-zA-Z0-9和下划线的字符串

\d 匹配任何包含数字字符

\D 匹配任何非数字字符

\s 匹配任何空白字符

\S 匹配任何非空白字符

\b 匹配是否到达了单词边界

\B 匹配没有到达了单词边界

\ 匹配正则中的特殊字符

 //元字符
     echo preg_match('/[a-z]/','abc');//返回1
     echo preg_match('/[A-Z]/','ABC');//返回1
     echo preg_match('/[0-9]/','123');//返回1
     echo preg_match('/[abc]/', 'a');//返回1
     echo preg_match('/[^abc]/', 'd');//返回1
     echo preg_match('/[^a-zA-Z0-9_]/', 'aD45_');//返回1
     echo preg_match('/\w/', 'aD45_');//返回1
     echo preg_match('/\W/', 'aD45_');//返回0
     echo preg_match('/\d/', '123456');//返回1
     echo preg_match('/\D/', '123456');//返回0
     echo preg_match('/\d/', '123456');//返回1
     echo preg_match('/\s/', ' ');//返回1
     echo preg_match('/\S/', ' ');//返回0
     //单词尾部边界
     echo preg_match('/at\b/', 'cat');//返回1
     //头单词部边界
     echo preg_match('/\bat/', 'attribute');//返回1
     //没有到达边界
     echo preg_match('/\Bat/', 'attribute');//返回0
     //特殊字符 $ ^ * () + = {} [] | \ : <>
     echo preg_match('/$/', '$');//返回1

修饰符 说明

i 完全不区分大小写

m 可以采用多行识别,遇到换行也承认匹配规则

x 忽略掉规则模式中的空白字符

A 强制从头开始匹配

U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束

 //修饰符
     
     //i 不区分大小写
     echo preg_match('/abcd/','AbcD');//返回0
     echo preg_match('/abcd/i','AbcD');//返回1
 ​
     //m 多行识别
     $str = '1a
 1a';
     preg_match_all('/^1a/',$str,$arr);
     print_r($arr);
     //结果为Array ( [0] => Array ( [0] => 1a ) )
     //默认从头到尾匹配,所以只匹配到一个
 ​
     preg_match_all('/^1a/m',$str,$arr);//返回1
     print_r($arr);
     //结果为Array ( [0] => Array ( [0] => 1a [1] => 1a ) )
     //每行都会使用规则,所以匹配的到二个,注意第二行前面不要有空格避免干扰
 ​
 ​
     //x 忽略模式的空格
     echo preg_match('/a b/','ab');//返回0
     echo preg_match('/a b/x','ab');//返回1
 ​
     //A 强制开头匹配
     echo preg_match('/ab/','catabc');//返回1
     echo preg_match('/ab/A','catabc');//返回0
     echo preg_match('/ab/A','abcdef');//返回1
 ​
     //U 禁止贪婪匹配
     preg_match_all('/php\w+php/','php123phpphp456php',$arr);
     print_r($arr);
     //结果为Array ( [0] => Array ( [0] => php123phpphp456php ) )
 ​
     preg_match_all('/php\w+php/U','php123phpphp456php',$arr);
     print_r($arr);
     //结果为Array ( [0] => Array ( [0] => php123php [1] => php456php ) )
     //禁止贪婪匹配后,会就近匹配
     
     
     //风格函数
     //preg_grep()
     $arr = array('php5','php6','php7','css','html');
     $out = preg_grep('/php[0-9]/', $arr);
     print_r($out);
     //结果为Array ( [0] => php5 [1] => php6 [2] => php7 )
 ​
     //preg_match()
     echo preg_match('/php[0-9]/','php5');//返回1
     
     //preg_match_all()
     preg_match_all('/php[0-9]/','php5php6php7',$arr);
     print_r($arr);
     //结果为Array ( [0] => Array ( [0] => php5 [1] => php6 [2] => php7 ) )
 ​
     //preg_quote()
     echo preg_quote(' $ ^ * () + = {} [] | \\ : <>');
     //结果为 \$ \^ \* \(\) \+ \= \{\} \[\] \| \\ \: \<\>
     
     //preg_replace()
     echo preg_replace('/php/','python', 'php1php2php3');
     //结果为 python1python2python3
 ​
     //preg_split()
     $str = preg_split('/a/', 'cbabc');
     print_r($str);

行云博客 - 免责申明 本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。 如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。敬请谅解!

本文链接:https://www.xy586.top/12426.html

转载请注明文章来源:行云博客 » PHP正则表达式

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正则表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档