博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php正则表达式以及正则函数详解
阅读量:5291 次
发布时间:2019-06-14

本文共 2058 字,大约阅读时间需要 6 分钟。

发布时间: 2012-03-21 浏览次数:21493 分类: 

 

 

    正则表达式是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字符外的所有东西

下面来讲讲正则表达式常用函数吧!(非常重要)

  1. <?php
  2.  
  3. //preg_match("正则表达式","字符串")用于在字符串中查找匹配项
  4.  
  5. $email = "987044391@qq.com";
  6. if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
  7. echo '匹配成功<hr />';
  8. }else {
  9. echo '匹配失败<hr />';
  10. }
  11.  
  12. //preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\
  13.  
  14. $str = "php点点通是一个学习php的网站,(⊙o⊙)…";
  15. echo preg_quote($str);
  16. echo "<hr />";
  17.  
  18. //preg_split("正则","字符串")分割字符串
  19. $php = "+php++点点通++++是好网站";
  20. $field = preg_split("/\+{1,}/",$php);
  21. foreach($field as $f){
  22. echo $f." ";
  23. }
  24. echo "<hr />";
  25. //preg_grep("正则","字符串") 与数组匹配后返回新数组
  26. $phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
  27. $item = preg_grep("/^php/",$phpddt);
  28. print_r($item);
  29.  
  30. echo "<hr />";
  31. //preg_replace("正则","替换内容","原字符串") 很重要,很常用
  32. $a = "欢迎光临http://www.phpddt.com/"; //给http开头的加上超链接
  33. echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a");
  34.  
  35. ?>

 

运行结果如下:

 

转载请说明,本来来自 ,谢谢

转载于:https://www.cnblogs.com/HuiLove/p/4979643.html

你可能感兴趣的文章
spring_远程调用
查看>>
js 中基本数据类型和引用数据类型 ,,,, js中对象和函数的关系
查看>>
登录服务器,首先用到的5个命令
查看>>
多米诺骨牌
查看>>
区间DP 等腰三角形
查看>>
mysql 存储引擎对索引的支持
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
【转】iOS 宏(define)与常量(const)的正确使用-- 不错
查看>>
【转】iOS开发UI篇—iPad和iPhone开发的比较
查看>>
【转】Android底层库和程序
查看>>
OnContextMenu事件(转)
查看>>
Comparación para 2019 Nueva Lonsdor K518S y K518ISE
查看>>
论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
查看>>
从今天开始
查看>>
Attribute(特性)与AOP
查看>>
第三次作业
查看>>
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
laravel command调用方法命令
查看>>