正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串

比如:

上述代码中的'/abc123/'就是一个正则表达式,我们从中可以看出,/abc123/就是一串由字符和数字组成的字符串,只不过这些字符在里面有其特殊的含义,比如/abc123/这个正则表达式的规则是,字符串以abc123开头,任何字符串符合这个规则就它就和这个表达式相匹配了

(二)、正则表达式的几个基本语法

1、正则匹配模式使用分隔符与元字符组成,分隔符可以是非数字、非反斜线、非空格的任意字符。常见的分隔符比如正斜线(/)、hash符号(#)以及取反符号(~)

举例如:

/hello world/表达式的意思是:字符串以hellow world开头

#^[0-9]$#表达式的意思是:匹配0-9的数字

~hello~表达式的意思是:字符串包含hello

我们用代码来测试一下

例一、

/hello world/表达式的意思是:字符串以hellow world开头

运行结果如下:

该字符串符合这个规则/hello world/

换一个字符串看下,不以hello world开头

运行结果为:

空白

代码改一下,字符串改成一个大于9的数字看下

运行结果为:

例三、

~hello~表达式的意思是:字符串包含hello

具体代码如下:

运行结果为:

该字符串符合这个规则:~hello~

现在把测试字符串改成不包含hellow

具体代码如下:

运行结果为:

该字符串不符合这个规则:~hello~

由此可见:

1、/表示开头

2、^表示以^后面的字符开始

3、$表示以$前面的字符结束

4、~表示包含的意思

2、如果模式中包含分隔符,则分隔符需要使用反斜杠()进行转义。

比如:

/https://www./表示以https://www.开头

具体代码如下:

运行结果为:

该字符串符合这个规则:/https://www./

试着将字符串改成不以https://www.开头看下

运行结果为:

该字符串不符合这个规则:/https://www./

3、如果模式中包含较多的分割字符,建议更换其他的字符作为分隔符,也可以采用preg_quote进行转义。

例一、

运行结果为:

Warning:preg_match():Unknown modifier'/'in D:E-classclass-codeclassingindex.php on line 7

所以此时不能直接写/要么按照上面的进行转义,要么按照下面的方式进行

具体代码如下:

运行结果为:

4、分隔符后面可以使用模式修饰符,模式修饰符包括:i,m,s,等

总结:

1、i表示可以忽略大小写

2、m表示多行匹配

3、如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。

案例一、

实践目标:

1、i表示可以忽略大小写

运行结果为:

该字符串符合这个规则:/ABc/i

案例二、

实践目标:

1、m表示多行匹配

具体代码如下:

运行结果为:

该字符串符合这个规则:/chinese/m,匹配结果为:Array([0]=>Array([0]=>chinese[1]=>chinese))

这里要注意的是一定要用preg_match_all否则用preg_match它只会匹配一行

接下来我们运行下效果

运行结果为:

该字符串符合这个规则:/chinese/m,匹配结果为:Array([0]=>chinese)

其实/m在此也算多此一举,因为preg_match_all就是表示多行匹配了

运行结果其实是一样的,结果为:

该字符串符合这个规则,匹配结果为:Array([0]=>Array([0]=>chinese[1]=>chinese))

只是要知道m表示多行匹配的意思

案例三、

实践目标:

1、如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。

具体代码如下:

运行结果如下:

该字符串符合这个规则,匹配结果为:Array([0]=>Array([0]=>chinese[1]=>chinese g))

说明个chinese后面的字符是换行也匹配到了,这说明了s的意思就是.要包含换行符,接下来

我们去掉s,看下终的结果

运行结果如下:

该字符串符合这个规则,匹配结果为:Array([0]=>Array([0]=>chinese g))

说明此刻只匹配到一个了,因为.不包含换行符,所以个chinese没有匹配到

总结:

本文主要讲解了

1、正则表达式的定义

2、正则表达式的几个基本语法

达内php难吗,深圳达内php教学好吗 说说我学习的经历相关推荐

  1. 达内培训php怎么样,深圳达内php培训到底怎么样 说说亲身经历感受

    基本语法 界定符: 标识一个正则表达式的开始和结束,用'/'或'#'或'{}',因为语法'{}'也可能是正则表达式的运算符,为了避免混淆,所以不建议使用.建议的用法如下: 原子: 可见原子:Unico ...

  2. 深圳达内:用事实打破一切谣言

    深圳达内:用事实打破一切谣言 相信很多人在选择培训机构学习的时候都会去了解这家培训机构的规模,教学模式,以及学习完之后能得到什么?   现在深圳达内就带你了解下,我们的学员在学习完之后是什么情况,是无 ...

  3. 达内android 代码,深圳达内Android网页源码查看器.pdf

    深圳达内 Android 网页源码查看器 ? 1 <?xml version="1.0" encoding="utf-8"?> 2 < Lin ...

  4. 达内java作业_【达内JAVA教程】达内Java基础题

    原标题:[达内JAVA教程]达内Java基础题 [达内JAVA教程]达内Java基础题.的小编收集了四道JAVA基础题,下面快来跟随的小编来了解一下吧! 话说很多java程序员学过一段时间后,都应该找 ...

  5. 小学五年级计算机教学论文,小学五年级数学教学论文 如何激发学生学习数学的兴趣...

    <小学五年级数学教学论文 如何激发学生学习数学的兴趣>由会员分享,可在线阅读,更多相关<小学五年级数学教学论文 如何激发学生学习数学的兴趣(4页珍藏版)>请在人人文库网上搜索. ...

  6. 【金猿案例展】某远程教育机构——以用户为中心 打造优势教学内容和智慧化学习产品...

    诸葛智能案例 本项目由诸葛智能投递并参与"数据猿年度金猿策划活动--2021大数据产业创新服务企业榜单及奖项"评选. 数据智能产业创新服务媒体 --聚焦数智 · 改变商业 2021 ...

  7. Delphi进行CAD二次开发教学(1)——基础学习:运行、新建、打开图形文件

    http://hi.baidu.com/piaoliuxia/blog/item/d61e03faed3bd18c9f514670.html 查看文章   [原创]Delphi进行CAD二次开发教学( ...

  8. 教师教学公开课创意黑板学习PPT模板

    模板介绍 精美PPT模板设计,教师教学公开课创意黑板学习PPT模板.一套说课PPT幻灯片模板,内含灰色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在汇报演讲时脱 ...

  9. java框架基础教程_Java零基础教学,分分钟掌握基础学习框架

    原标题:Java零基础教学,分分钟掌握基础学习框架 想学Java,刚开始有没有觉得无从下手呢?其实Java的基础知识点,并不多,但是一定要吃透,因为这是为后续核心的学习打下一个良好的基础.简单来说,就 ...

最新文章

  1. 清华理工男,跳了7年舞,来华为一年当了PL,这什么小哥哥
  2. 图灵八月书讯 ——技术图书嘉年华
  3. 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...
  4. 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别
  5. 十天冲刺开发第八天个人工作总结
  6. python画柱形图-Python数据分析:柱形图的绘制方法
  7. Windows下安装MySQL压缩zip包
  8. Golang 入门 : 数组
  9. python3 创建简单的游戏窗口,并有单独的配置文件
  10. 隐藏UITableView当没有数据或数据不够的时候出现的分割线.
  11. acctype mysql assoc_DedeCMS V5.3二次开发经验分享
  12. 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
  13. 移动端下拉刷新,向后台请求数据
  14. Hive编程指南(含目录,高清,免费)
  15. WordPress优化攻略:全面提升WP网站速度仅需3个加速方法和1个插件
  16. linux jvm gc日志分析,JVM之GC统计以及日志分析
  17. 学测试,看视频?NONONO,除非这种情况
  18. 使用 CSS 追踪用户
  19. matlab解算平差实例,MATLAB软件在测量平差解算中的应用
  20. aardio - 【库】webp图片转换

热门文章

  1. 2018年蓝桥杯A组C/C++决赛题解
  2. 质安码区块链直推新零售通过线上线下资源整合,实现信息传递的最大化
  3. 酷炫!可视化神器Plotly玩转饼图
  4. 万年历开源 android,简单干净的万年历
  5. Android 开发基于 Jenkins 实现持续集成
  6. 作业2(4)求m和n之间的和
  7. 在excel中如何筛选重复数据_Excel 在大量数据中快速筛选出重复数据
  8. 后端开发者从零做一个移动应用(一)
  9. DocSearcher:文档搜索引擎
  10. 机器学习---线性回归推导以及python实现