非常重要的php正则表达式详解
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-03 22:07:09 浏览: 评论:0
正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!
现在开始来学习正则表达式的基本语法:
1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。
(1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次
比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。
(2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次
比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p
(3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p
其他重要的元字符:
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
示例:/\s+/用于匹配目标对象中的一个或多个空格字符
2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”
(1)“^”定位符规定匹配模式必须出现在目标字符串的开头
(2)“$”定位符规定匹配模式必须出现在目标对象的结尾
(3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内
3.php的正则匹配模式非常灵活,可以指定某一范围
例如:
/[A-Z]/
上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/
上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/
上述正则表达式将会与从0到9范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/
上述正则表达式将会与任何由字母和数字组成的字符串
4.可以同时与多种模式选择匹配
如/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配
5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串
例如:[^phpddt]匹配除了phpddt字符外的所有东西
下面来讲讲正则表达式常用函数吧!(非常重要)
- <?php
- //preg_match("正则表达式","字符串")用于在字符串中查找匹配项
- $email = "987044391@qq.com";
- if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
- echo '匹配成功<hr />';
- }else {
- echo '匹配失败<hr />';
- }
- //preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\
- $str = "php点点通是一个学习php的网站,(⊙o⊙)…";
- echo preg_quote($str);
- echo "<hr />";
- //preg_split("正则","字符串")分割字符串
- $php = "+php++点点通++++是好网站";
- $field = preg_split("/\+{1,}/",$php);
- foreach($field as $f){
- echo $f." ";
- }
- echo "<hr />";
- //preg_grep("正则","字符串") 与数组匹配后返回新数组
- $phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
- $item = preg_grep("/^php/",$phpddt);
- print_r($item);
- echo "<hr />";
- //preg_replace("正则","替换内容","原字符串") 很重要,很常用
- $a = "欢迎光临https://www.phpfensi.com/"; //给http开头的加上超链接
- echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a");
- ?>
Tags: php正则表达式
相关文章
- ·三分钟学会PHP正则表达式(2013-11-13)
- ·巧用PHP正则表达式判断IP地址(2013-11-13)
- ·php正则表达式替换URL链接地址为指定url(2014-07-26)
- ·验证邮箱格式 用户名 url 的php正则表达式(2014-08-02)
- ·php常用正则表达式函数(2014-09-09)
- ·php用正则表达式匹配中文实例详解(2020-05-16)
- ·PHP和javascript常用正则表达式及用法实例(2021-03-07)
- ·学习php中的正则表达式(2021-03-31)
- ·PHP 正则表达式常用函数(2021-04-02)
- ·10个实用的PHP正则表达式汇总(2021-04-17)
- ·PHP 正则表达式小结(2021-05-13)
- ·php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)(2021-07-14)
- ·php表单习惯用的正则表达式(2021-08-12)
- ·PHP正则表达式处理函数(PCRE 函数)实例小结(2021-11-22)
- ·PHP常用正则表达式精选(推荐)(2021-11-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)